因为主要在linux下用vim编辑器开发(emacs用户请勿喷),所以记录的是无IDE情况下的maven项目构建方式。
首先阐明使用maven的原因,IBM中文社区牛人已经讲得比较详细,对比了构建项目的两个工具Maven和Ant,链接如下https://www.ibm.com/developerworks/cn/java/j-maven/。Maven采用远程仓库和本地仓库,将pom.xml中定义的jar文件从远程仓库下载到本地仓库,各个应用使用同一个本地仓库的jar,同一个版本的jar只需下载一次,而且避免每个应用都去拷贝jar。同时它采用了现在流行的插件体系架构,只保留最小的核心,其余功能都通过插件的形式提供,所以maven下载很小,在执行maven任务时,才会自动下载需要的插件。在项目进程中,不必做什么配置,在pom.xml同级目录,使用简单的maven命令,就可以完成初始化->开发->测试->发布的全过程。
接下来开始创建maven项目:
1.建立项目文件,需要建立两个路径,分别是产品代码路径和测试代码路径
基本格式是
my-app
|--pom.xml
`--src
|-- main ------------------------------------负责管理项目主体
| `-- java
| `-- com
| `-- mycompany
| `-- app
| `-- App.java
`--test --------------------------------------负责管理项目测试
`--java
`--com
`--mycompany
`--app
`--AppTest.java
2.pom.xml文件即项目对象模型,建立在项目的根目录下,是maven构建项目的基石,maven根据pom.xml文件中的字段信息管理整个项目。
基本格式是
<projectxmlns="http://maven.apache.org/POM/4.0.0">----父项目的坐标
<modelVersion></modelVersion>---------------------------模型版本
<groupId></groupId>------------------------------------------产品组ID
<artifactId></artifactId>---------------------------------------一般填写项目名称
<version></version>-------------------------------------------产品版本
<packaging></packaging>------------------------------------定义项目将要被打包的格式
<name></name>------------------------------------------------项目名称
<url></url>------------------------------------------------------ITS的URL
<properties>-----------------------------------------------------填写依赖库的版本变量
<jetty.version></jetty.version>
</properties>
<repositories>---------------------------------------------------仓库
<repository>--------------------------------------------------本地仓库或者远程仓库的相关信息
<id></id>
<name></name>
<url></url>-------------------------------------------------仓库URL
</repository>
</repositories>
<pluginRepositories></pluginRepositories>----------------插件仓库定义
<dependencies>-------------------------------------------------依赖包定义
<dependency></dependency>
</dependencies>
<build>----------------------------------------------------------设置编译时的一些参数
<plugins></plugins>----------------------------------------编译需要的插件
</build>
</project>
以上只是列出一些基本的格式,pom文件的详解转一个链接,讲的很详细。http://blog.csdn.net/ithomer/article/details/9332071
3.在项目文件中编写好代码后,使用mvn[clean] package命令编译打包程序,或者使用mvn[clean] test -Dtests=test.java编译测试代码。
4.最后使用java-cp ***.jar ***.main.java启动进程,或者使用java-jar 启动jar包格式的进程。
最后整理一下一些maven的命令:
1.mvn clean清空生成的文件
2.mvn package打jar包
3.mvn clean package -DskipTests打jar包并且编译跳过test
4.mvn clean test编译test
5.mvn clean test -Dtest=TestA.java单独编译TestA测试代码
6.mvn jetty:run将项目运行在jetty上
对于mvnpackage以及lifecycle,phase和goal的理解官方文档说得比较清楚。http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
以上简单的介绍了无IDE建maven项目的流程,详细细节以后慢慢补充。