默谷资源网

专业网站建设资源库

Maven 如何打包Fat Jar(胖Jar)-mvn clean package

Maven 打包时生成 jar-with-dependencies.jar 文件通常与 Maven Shade PluginMaven Assembly Plugin 的配置有关。这些插件会创建一个包含项目自身代码及所有依赖项的 "胖 JAR"(Fat JAR),适用于需要独立运行的应用程序。

触发条件

当以下情况满足时,Maven 会生成 jar-with-dependencies.jar:



  1. 显式配置插件
    在 pom.xml 中配置了 Shade 或 Assembly 插件,并指定了生成包含依赖的 JAR 文件。
  2. 执行特定 Maven 命令
    运行 mvn package 或 mvn install 时,如果插件配置正确,会生成该文件。

典型配置示例

1. 使用 Maven Shade Plugin

在 pom.xml 中添加以下配置:



xml

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-shade-plugin</artifactId>
      <version>3.4.1</version>
      <executions>
        <execution>
          <phase>package</phase>
          <goals>
            <goal>shade</goal>
          </goals>
          <configuration>
            <transformers>
              <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                <mainClass>com.example.MainClass</mainClass> <!-- 指定主类 -->
              </transformer>
            </transformers>
            <finalName>${project.artifactId}-with-dependencies</finalName> <!-- 生成的文件名 -->
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>


2. 使用 Maven Assembly Plugin

xml

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-assembly-plugin</artifactId>
      <version>3.6.0</version>
      <configuration>
        <descriptorRefs>
          <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
        <archive>
          <manifest>
            <mainClass>com.example.MainClass</mainClass> <!-- 指定主类 -->
          </manifest>
        </archive>
      </configuration>
      <executions>
        <execution>
          <id>make-assembly</id>
          <phase>package</phase>
          <goals>
            <goal>single</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

执行命令

配置完成后,执行以下命令生成 jar-with-dependencies.jar:



bash

mvn clean package



生成的文件通常位于 target 目录下,命名为 项目名-with-dependencies.jar。

总结

  • 默认行为:Maven 不会自动生成包含依赖的 JAR,需要手动配置插件。
  • 适用场景:当项目需要作为独立应用运行(如 Java 程序、微服务)时,使用胖 JAR 更方便部署。
  • 注意事项:包含所有依赖可能导致 JAR 文件过大,需谨慎处理依赖冲突。
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言