生命周期
Maven 在构建项目时按照固定顺序执行的一系列阶段(phase)。
clean
删除 target/
default
| 阶段 | 作用 |
|---|---|
| validate | 校验项目 |
| compile | 编译源码 |
| test | 运行测试 |
| package | 打包 |
| verify | 验证 |
| install | 安装到本地仓库 |
| deploy | 发布到远程仓库 |
validate
验证项目是否正确,所有必要的信息是否可用。
compile
核心阶段。编译项目的源代码(src/main/java 编译为 .class)。
test
使用单元测试框架(如 JUnit)运行测试,测试代码不会被打包。
package
核心阶段。将编译后的代码打包成可分发的格式(如 jar 或 war)。package时需要告诉jar包main方法在哪,否则会报错:
world3-1.0-SNAPSHOT.jar中没有主清单属性同时还需要安装jar所需要的依赖
在pom.xml中添加:
xml
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>org.example.Main</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>verify
对集成测试结果进行检查,确保质量达标。
install
核心阶段。将安装包安装到本地仓库,供本地其他项目作为依赖使用。
deploy
核心阶段。将最终的包复制到远程仓库(如公司的 Nexus),供其他开发者和项目共享。
site
用于生成项目的文档、报告和站点。
