mvn package 与 install
package 打包项目,install 安装到本地仓库。
package 命令
基本用法
Bash
mvn package
执行阶段
Bash
validate → compile → test → package
输出产物
XML
target/${artifactId}-${version}.jar
target/${artifactId}-${version}.war
打包类型
| packaging | 产物 |
|---|---|
| jar | *.jar |
| war | *.war |
| pom | 无产物 |
install 命令
基本用法
Bash
mvn install
执行阶段
Bash
validate → compile → test → package → install
安装位置
XML
~/.m2/repository/${groupId}/${artifactId}/${version}/
├── ${artifactId}-${version}.jar
├── ${artifactId}-${version}.pom
└── _remote.repositories
使用场景
其他项目引用本地安装的构件:
XML
<dependency>
<groupId>com.example</groupId>
<artifactId>my-lib</artifactId>
<version>1.0.0</version>
</dependency>
跳过测试打包
XML
# 跳过测试执行
mvn package -DskipTests
# 跳过测试编译和执行
mvn package -Dmaven.test.skip=true
组合命令
XML
# 清理后打包
mvn clean package
# 清理后安装
mvn clean install
# 清理后安装,跳过测试
mvn clean install -DskipTests
打包配置
JAR 打包
Bash
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.2</version>
<configuration>
<archive>
<manifest>
<mainClass>com.example.Main</mainClass>
<addClasspath>true</addClasspath>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
WAR 打包
Bash
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
<configuration>
<warSourceDirectory>src/main/webapp</warSourceDirectory>
</configuration>
</plugin>
</plugins>
</build>
打包源码和文档
打包源码
Bash
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
输出:${artifactId}-${version}-sources.jar
打包 Javadoc
text
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.4.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
输出:${artifactId}-${version}-javadoc.jar
安装本地 jar
手动安装第三方 jar
text
mvn install:install-file \
-Dfile=/path/to/lib.jar \
-DgroupId=com.example \
-DartifactId=third-party-lib \
-Dversion=1.0.0 \
-Dpackaging=jar
指定 POM
text
mvn install:install-file \
-Dfile=/path/to/lib.jar \
-DpomFile=/path/to/lib.pom
package vs install
| 命令 | 产物位置 | 用途 |
|---|---|---|
| package | target/ | 本项目使用 |
| install | 本地仓库 | 其他项目引用 |
查看打包内容
text
# 查看 JAR 内容
jar tf target/my-app-1.0.0.jar
# 查看 WAR 内容
jar tf target/my-app-1.0.0.war
要点总结
- mvn package 打包为 jar/war
- mvn install 安装到本地仓库
- package 仅生成产物,install 可供其他项目引用
- -DskipTests 跳过测试打包
- 可打包源码和 Javadoc
- 手动安装第三方 jar 用 install:install-file
📝 发现内容有误?点击此处直接编辑