最近被一个多模块项目搞的头晕眼花,最后经过多次摸索终于发现了如何使用maven来创建多模块的项目。现在把一些经验和教训总结一下供后来人借鉴和指教。
maven的作用
毋庸置疑,maven是用来创建一个项目的基本构架以使得这个工程可以方便的重复构建。
maven的生命周期
谈到项目,不得不提到一个基本项目的生命周期,也就是说在项目被maven打包成jar, war等等不同的包装的时候都需要经过哪些步骤呢?一般来讲,需要经过一下常用步骤:
- 编译(compile): 不做解释了,编译源文件成为二进制文件。
- 测试(test): 运行编译后的单元测试。
- 打包(packaging): 把二进制文件打包成为指定的格式。
- 安装(install): 把打包好的指定格式文件安装到本地仓库中。
- 部署(deploy): 把指定的文件安装到远程仓库中。
举个例子,如果你想要打包你的文件成为一个jar文件,那么你需要一下的maven配置文件(俗称pom.xml):
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app(项目姓氏)</groupId>
<artifactId>my-app(项目名字)</artifactId>
<version>1.0-SNAPSHOT(项目版本号)</version>
<packaging>jar(项目打包方式)</packaging>
</project>
这就是一个最最简单的maven项目了,在maven项目里面,前面两个标签都是默认的。
maven的打包方法
好了,基本信息确定了以后,接下来就需要我们来进行实际的打包操作了。那么,如何去打包一个项目?
你需要指定一些插件来完成具体编译,打包的过程。比如说,我想要生成一个jar文件(project.jar)和源文件包(project-sources.jar),那么,我需要的maven的插件有两个,一个是maven-jar-plugin,另一个是maven-sources-plugin。
在pom.xml里面,我们需要指定这两个插件的使用方法,例子如下所示:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins(插件姓氏)</groupId>
<artifactId>maven-jar-plugin(插件名字)</artifactId>
<version>2.6(版本号)</version>
<executions>
<execution>
<id>compile-my-project(操作名称)</id>
<phase>compile(执行此操作的生命周期)</phase>
<goals>
<goal>jar(此操作的目标)</goal>
</goals>
<configuration>
自己定义一些操作的配置信息
</configuration