дÕâ¸ö
maven µÄÈëÃÅÆªÊÇÒòΪ֮ǰÔÚÒ»¸ö¿ª·¢Õß»áµÄ¶¯ÊÖʵÑéÖз¢ÏÖͦ¶àÈ˶ÔÓÚ maven ²»ÊÇÄÇôÁ˽⣬ËùÒÔ¾ÍÓÐÁËÕâ¸öÏë·¨¡£
Õâ¸öÈëÃÅÆª·ÖÉÏÏÂÁ½Æª¡£±¾ÎÄ×ÅÖØ¶¯ÊÖ£¬Óà maven À´¹¹½¨ÔËÐÐ hellow world ³ÌÐò£¬Ìå»áһϲ»ÓÃÈκÎ
IDE £¬Ö»Óà maven ÊÇÕ¦»ØÊ¡£È»ºóÏÂÆª¾Í½²½âһϠmaven µÄºËÐĸÅÄдÕâÁ½ÆªÎÄÕÂÌØÒâ»Ø±ÜÁ˸´ÔÓµÄʾÀý£¬Ò²²»Ê¹ÓÃ
IDE £¬Ä¿µÄÊÇÅųý¸ÉÈÅ£¬×ÅÖØÓÚ maven ±¾Éí¡£
Apache Maven ÊÇ×öʲôÓõģ¿
Maven ÊÇÒ»¸öÏîÄ¿¹ÜÀíºÍ¹¹½¨×Ô¶¯»¯¹¤¾ß¡£µ«ÊǶÔÓÚÎÒÃdzÌÐòÔ±À´Ëµ£¬ÎÒÃÇ×î¹ØÐĵÄÊÇËüµÄÏîÄ¿¹¹½¨¹¦ÄÜ¡£ËùÒÔÕâÀïÎÒÃǽéÉܵľÍÊÇÔõÑùÓÃ
maven À´Âú×ãÎÒÃÇÏîÄ¿µÄÈÕ³£ÐèÒª¡£
Maven ʹÓùßÀýÓÅÓÚÅäÖõÄÔÔò ¡£ËüÒªÇóÔÚûÓж¨ÖÆÖ®Ç°£¬ËùÓеÄÏîÄ¿¶¼ÓÐÈçϵĽṹ£º

Ò»¸ö maven ÏîÄ¿ÔÚĬÈÏÇé¿öÏ»á²úÉú JAR Îļþ£¬ÁíÍâ £¬±àÒëºó
µÄ classes »á·ÅÔÚ ${basedir}/target/classes ÏÂÃæ£¬ JAR Îļþ»á·ÅÔÚ
${basedir}/target ÏÂÃæ¡£
ÕâʱÓÐÈË»á˵ÁË £¬ Ant ¾ÍûÓÐÄÇô¶àÒªÇó £¬ËüÔÊÐíÄã¿ÉÒÔ×ÔÓɵ͍ÒåÏîÄ¿µÄ½á¹¹¡£ÔÚÕâÀï²»ÏëÒýÆð¿Úˮս¹þ£¬
ÎÒ¸öÈ˾õµÃ maven µÄÕâЩĬÈ϶¨ÒåºÜ·½±ãʹÓá£
ºÃÁË £¬½ÓÏÂÀ´ÎÒÃÇÀ´°²×° maven ¡£
Maven µÄ°²×°
ÔÚ°²×° maven ǰ£¬Ïȱ£Ö¤Äã°²×°ÁË JDK ¡£ JDK 6 ¿ÉÒÔ´Ó
Oracle ¼¼ÊõÍøÉÏÏÂÔØ£º
http://www.oracle.com/technetwork/cn/java/javase/downloads/index.html¡£
Maven ¹ÙÍøµÄÏÂÔØÁ´½ÓÊÇ : http://maven.apache.org/download.html
¡£
¸ÃÒ³µÄ×îºó¸ø³öÁ˰²×°Ö¸ÄÏ¡£
°²×°Íê³Éºó£¬ÔÚÃüÁîÐÐÔËÐÐÏÂÃæµÄÃüÁ
$ mvn -v Apache Maven 3.0.3 (r1075438; 2011-03-01 01:31:09+0800) Maven home: /home/limin/bin/maven3 Java version: 1.6.0_24, vendor: Sun Microsystems Inc. Java home: /home/limin/bin/jdk1.6.0_24/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "2.6.35-28-generic-pae", arch: "i386", family: "unix" |
Èç¹ûÄã¿´µ½ÀàËÆÉÏÃæµÄÊä³öµÄ»°£¬¾Í˵Ã÷°²×°³É¹¦ÁË¡£
½ÓÏÂÀ´ÎÒÃÇÓà maven À´½¨Á¢×îÖøÃûµÄ¡°Hello World!¡±³ÌÐò
:)
×¢Ò⣺Èç¹ûÄãÊǵÚÒ»´ÎÔËÐÐ maven£¬ÄãÐèÒª Internet Á¬½Ó£¬ÒòΪ
maven ÐèÒª´ÓÍøÉÏÏÂÔØÐèÒªµÄ²å¼þ¡£
ÎÒÃÇÒª×öµÄµÚÒ»²½Êǽ¨Á¢Ò»¸ö maven ÏîÄ¿¡£ÔÚ maven ÖУ¬ÎÒÃÇÊÇÖ´ÐÐ
maven Ä¿±ê (goal) À´×öÊÂÇéµÄ¡£
maven Ä¿±êºÍ ant µÄ target ²î²»¶à¡£ÔÚÃüÁîÐÐÖÐÖ´ÐÐÏÂÃæµÄÃüÁîÀ´½¨Á¢ÎÒÃǵÄ
hello world 씀~$mvn archetype:generate -DgroupId=com.mycompany.helloworld -DartifactId=helloworld
-Dpackage=com.mycompany.helloworld -Dversion=1.0-SNAPSHOT |
archetype:generate Ä¿±ê»áÁгöһϵÁÐµÄ archetype
ÈÃÄãÑ¡Ôñ¡£ Archetype ¿ÉÒÔÀí½â³ÉÏîÄ¿µÄÄ£ÐÍ¡£ Maven ΪÎÒÃÇÌṩÁ˺ܶàÖÖµÄÏîĿģÐÍ£¬°üÀ¨´Ó¼òµ¥µÄ
Swing µ½¸´Ô Web Ó¦Óá£ÎÒÃÇÑ¡ÔñĬÈ쵀 maven-archetype-quickstart
£¬ÊDZàºÅ #106 £¬ÈçÏÂͼËùʾ£º

Á¬´òÁ½¸ö»Ø³µ£¬ÕâʱºòÈÃÄãÈ·¶¨ÏîÄ¿ÊôÐÔµÄÅäÖã¬

ÕâЩÊôÐÔÊÇÎÒÃÇÔÚÃüÁîÐÐÖÐÓà -D Ñ¡ÏîÖ¸¶¨µÄ¡£¸ÃÑ¡ÏîʹÓà -Dname=value
µÄ¸ñʽ¡£»Ø³µÈ·ÈÏ£¬¾ÍÍê³ÉÁËÏîÄ¿µÄ½¨Á¢£¬ÈçÏÂͼËùʾ£º

ÕâʱºòÎÒÃÇ¿´Ò»Ï maven ¸øÎÒÃǽ¨Á¢µÄÎļþĿ¼½á¹¹£º

maven µÄ archetype ²å¼þ½¨Á¢ÁËÒ»¸ö helloworld
Ŀ¼£¬Õâ¸öÃû×ÖÀ´×Ô artifactId ¡£ÔÚÕâ¸öĿ¼ÏÂÃæ£¬ÓÐÒ»¸ö Project Object Model(POM)
Îļþ pom.xml ¡£Õâ¸öÎļþÓÃÓÚÃèÊöÏîÄ¿£¬ÅäÖòå¼þºÍ¹ÜÀíÒÀÀµ¹ØÏµ¡£
Ô´´úÂëºÍ×ÊÔ´Îļþ·ÅÔÚ src/main ÏÂÃæ£¬¶ø²âÊÔ´úÂëºÍ×ÊÔ´·ÅÔÚ src/test ÏÂÃæ¡£
Maven ÒѾΪÎÒÃǽ¨Á¢ÁËÒ»¸ö App.java Îļþ£º
package com.mycompany.helloworld; /** * Hello world! * */ public class App {
public static void main( String[] args ) {
System.out.println( "Hello World!" );
}
}
|
ÕýÊÇÎÒÃÇÐèÒªµÄ Hello World ´úÂë¡£ËùÒÔÎÒÃÇ¿ÉÒÔ¹¹½¨ºÍÔËÐÐÕâ¸ö³ÌÐòÁË¡£ÓÃÏÂÃæ¼òµ¥µÄÃüÁî¹¹½¨£º
~$cd helloworld
~$mvn package |
µ±ÄãµÚÒ»´ÎÔËÐÐ maven µÄʱºò£¬Ëü»á´ÓÍøÉ쵀 maven ¿â (repository)
ÏÂÔØÐèÒªµÄ³ÌÐò£¬´æ·ÅÔÚÄãµçÄԵı¾µØ¿â (local repository) ÖУ¬ËùÒÔÕâ¸öʱºòÄãÐèÒªÓÐ Internet
Á¬½Ó¡£Maven ĬÈϵı¾µØ¿âÊÇ ~/.m2/repository/ £¬ÔÚ Windows ÏÂÊÇ %USER_HOME%\.m2\repository\
¡£
Èç¹û¹¹½¨Ã»ÓдíÎóµÄ»°£¬¾Í»áµÃµ½ÀàËÆÏÂÃæµÄ½á¹û£º
Õâ¸öʱºò£¬ maven ÔÚ helloworld ÏÂÃæ½¨Á¢ÁËÒ»¸öеÄĿ¼
target/ £¬¹¹½¨´ò°üºóµÄ jar Îļþ helloworld-1.0-SNAPSHOT.jar ¾Í´æ·ÅÔÚÕâ¸öĿ¼Ï¡£±àÒëºóµÄ
class Îļþ·ÅÔÚ target/classes/ Ŀ¼ÏÂÃæ£¬²âÊÔ class Îļþ·ÅÔÚ target/test-classes/
Ŀ¼ÏÂÃæ¡£
ΪÁËÑéÖ¤ÎÒÃǵijÌÐòÄÜÔËÐУ¬Ö´ÐÐÏÂÃæµÄÃüÁ
~$java -cp target/helloworld-1.0-SNAPSHOT.jar com.mycompany.helloworld.App |

ÔËÐгɹ¦£¡£¡
ÏÖÔÚÄã¿ÉÄÜ»áÓв»ÉÙµÄÎÊÌâ¡£ËùÒÔÏÂһƪÎÄÕ»á½âÊÍ maven µÄºËÐĸÅÄϣÍûÄܻشðÄã¿ÉÄÜ»áÓеÄһЩÒÉÎÊ¡£
|