再读Maven权威指南

来源:互联网 发布:淘宝店铺卖家的软件 编辑:程序博客网 时间:2024/05/22 01:53

  最近开始重新学习Maven了,话说,这些都是之前欠下的债啊,总是要还的,呵呵。言归正传,还是说说我看3,4章的一些体会。不是什么高深的体会,欢迎大家拍砖,谢谢!

 

  Maven的工作原理,Maven是由很多的插件(plugin)组成,每个插件里又包含了不同的目标(goal),类似ANT中的target。在执行maven的时候,我们可以指定某个插件中的某个目标来执行,就像执行ANT时,指定Build.xml中的某个目标执行,例如ant init。Maven还可以执行“构建生命周期”,例如mvn install,这个生命周期中包括了多个插件中的不同目标,例如compile,test,build等等。Maven有默认的生命周期,也可我们自定义一些生命周期。

 

  书中为每章配有了例子,之前我对例子一直存在误区,将例子下载下来进行构建,认为需要提前编写POM文件、创建文件结构。其实不然,当安装好了maven之后,即可通过maven的插件目标构建一个工程结构。

 

  以第三章为例,如果没有下载源码,我们可以直接执行如下命令:mvn archetype:create -DgroupId=org.sonatype.mavenbook.ch03 -DartifactId=simple -DpackageName=org.sonatype.mavenbook.archetype插件中的create目标可用来快速创建一个项目,为项目搭起一个骨架。我是下载了maven example并运行了,一直觉得是原有的pom.xml文件在起作用,事实上是这样的,当mavne运行archetype的create目标的时候,创建了基本的文件路径及最简单的pom.xml。我试验了另外一个命令从而得到证实,mvn archetype:create -DgroupId=org.sonatype.mavenbook.test -DartifactId=test -DpackageName=org.sonatype.mavenbook.test,运行完成,看到BUILD SUCCESSFUL信息之后,可看到提示信息“OldArchetype created in dir:/root/test”,那么我们到/root/test目录下查看一下,如图。

我们得到的最基本的pom.xml文件如下:

 

 

 

运行的这个命令中说明了要创建工程的groupId,artifactId,packageName,也可将工程的version作为参数传给maven执行,例如第四章中的例子,这些信息称为Maven的坐标,可以看到生成的pom中与执行命令时的参数设置相同,对于没有进行设定的maven赋予了默认值,例如packaging。

 

  项目的基本架构搭建成功后,我们可以在其中添加我们功能代码,classpath,测试case等等,最后进行安装对项目进行编译,测试,构建,即mvn install所完成的目标。

 

  至此,我对Maven的工作原理,基本的过程有了进一步了解,不对或者遗漏的地方欢迎大家指正,再次感谢!