Digging in Java

maven, spring, hibernate, et al

Maven 浅谈(一)

Maven是一种project management工具。大致上来说,可以认为它是没有图形界面的IDE。你可以用它来编译,打包,做成jar,war,ear.....

下载安装之后,可以通过命令创建一个简单的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/

上面的命令会在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的默认设置中,每个phase都附加了相应的plugin goal。而执行一个phase,意味着同时执行所有在它之前的phases

比方说,process-resources这个lifecycle phase,它对应的plugin goal是resources:resources;test,对应着 surefire:test;package,对应 jar:jar

当你执行 mvn install的时候,换成plugin就是
mvn resources:resources \
    compiler:compile \
    resources:testResources \
    compiler:testCompile \
    surefire:test \
    jar:jar



编译好了应该可以运行那个hello world了,是这样的:
mvn exec:java -Dexec.mainClass=com.sky.birds.App
要加参数?用 -Dexec.args=xxxx


项目建起来了,但真正写代码还是在eclipse里。把它import到eclipse里?杯具发生了:eclipse不认为那是一个java项目......

有个命令可以解决这个问题
mvn eclipse:eclipse

然后就可以把它作为一个existing project,import到eclipse里了


顺便说一下,建一个web项目类似于
mvn archetype:create -DgroupId=com.mycompany.app \
                     
-DartifactId=my-webapp \
                     
-DarchetypeArtifactId=maven-archetype-webapp


posted on 2011-04-05 11:18 GX 阅读(504) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 

导航

<2011年4月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

统计

常用链接

留言簿

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜