Maven 淺談(一)
Maven是一種project management工具。大致上來說,可以認為它是沒有圖形界面的IDE。你可以用它來編譯,打包,做成jar,war,ear.....
下載安裝之后,可以通過命令創(chuàng)建一個簡單的java項目
這里,archetype是maven的一個plugin,而create是這個plugin的一個goal
Maven一個麻煩的地方就是它有自己的目錄layout,大致是這樣的:
上面的命令會在com.sky.birds下面生成一個App.java,里面就是一個簡單的hello world程序
有了這個基本的框架之后,可以用
這里install是maven的一個lifecycle phase。maven的lifecycle phase包括process-resources, compile, process-classes, process-test-resources,
test-compile, test, prepare-package, package......
在maven的默認設(shè)置中,每個phase都附加了相應(yīng)的plugin goal。而執(zhí)行一個phase,意味著同時執(zhí)行所有在它之前的phases
比方說,process-resources這個lifecycle phase,它對應(yīng)的plugin goal是resources:resources;test,對應(yīng)著 surefire:test;package,對應(yīng) jar:jar
當(dāng)你執(zhí)行 mvn install的時候,換成plugin就是
編譯好了應(yīng)該可以運行那個hello world了,是這樣的:
mvn exec:java -Dexec.mainClass=com.sky.birds.App
要加參數(shù)?用 -Dexec.args=xxxx
項目建起來了,但真正寫代碼還是在eclipse里。把它import到eclipse里?杯具發(fā)生了:eclipse不認為那是一個java項目......
有個命令可以解決這個問題
然后就可以把它作為一個existing project,import到eclipse里了
順便說一下,建一個web項目類似于
下載安裝之后,可以通過命令創(chuàng)建一個簡單的java項目
mvn archetype:create -DgroupId=com.sky -DartifactId=birds -DpackageName=com.sky.birds
這里,archetype是maven的一個plugin,而create是這個plugin的一個goal
Maven一個麻煩的地方就是它有自己的目錄layout,大致是這樣的:
birds/pom.xml
/src/
/src/main/
/main/java/
/java/com/sky/birds
/src/test/
/test/java/
/src/
/src/main/
/main/java/
/java/com/sky/birds
/src/test/
/test/java/
上面的命令會在com.sky.birds下面生成一個App.java,里面就是一個簡單的hello world程序
有了這個基本的框架之后,可以用
mvn install
來編譯,并且打包成一個jar這里install是maven的一個lifecycle phase。maven的lifecycle phase包括process-resources, compile, process-classes, process-test-resources,
test-compile, test, prepare-package, package......
在maven的默認設(shè)置中,每個phase都附加了相應(yīng)的plugin goal。而執(zhí)行一個phase,意味著同時執(zhí)行所有在它之前的phases
比方說,process-resources這個lifecycle phase,它對應(yīng)的plugin goal是resources:resources;test,對應(yīng)著 surefire:test;package,對應(yīng) jar:jar
當(dāng)你執(zhí)行 mvn install的時候,換成plugin就是
mvn resources:resources \
compiler:compile \
resources:testResources \
compiler:testCompile \
surefire:test \
jar:jar
compiler:compile \
resources:testResources \
compiler:testCompile \
surefire:test \
jar:jar
編譯好了應(yīng)該可以運行那個hello world了,是這樣的:
mvn exec:java -Dexec.mainClass=com.sky.birds.App
要加參數(shù)?用 -Dexec.args=xxxx
項目建起來了,但真正寫代碼還是在eclipse里。把它import到eclipse里?杯具發(fā)生了:eclipse不認為那是一個java項目......
有個命令可以解決這個問題
mvn eclipse:eclipse
然后就可以把它作為一個existing project,import到eclipse里了
順便說一下,建一個web項目類似于
mvn archetype:create -DgroupId=com.mycompany.app \
-DartifactId=my-webapp \
-DarchetypeArtifactId=maven-archetype-webapp
-DartifactId=my-webapp \
-DarchetypeArtifactId=maven-archetype-webapp