全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 2026-05-23 5 分钟 ✍️ juanwangdev

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

命令产物位置用途
packagetarget/本项目使用
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

📝 发现内容有误?点击此处直接编辑

← 上一篇 mvn deploy 发布流程
下一篇 → mvn test 与调试
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库