【问题标题】:why mvn doesn't generate fat jar为什么 mvn 不生成 fat jar
【发布时间】:2021-12-09 10:27:38
【问题描述】:

以下是我的pom.xml,我想用命令“mvn clean pacckage”构建一个fat Jar,所以我添加了一个插件,但不幸的是它没有生成一个far jar,我只看到一个管理- service-1.0-SNAPSHOT.jar,它不包含任何依赖jar。

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.xx.yy.zz</groupId>
  <artifactId>management-service</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>management-service</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>

  <properties>
    <maven.compiler.parameters>true</maven.compiler.parameters>
    <maven.compiler.source>11</maven.compiler.source>
    <maven.compiler.target>11</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  </properties>
  
  <build>
      <pluginManagement>
          <plugins>
              <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-compiler-plugin</artifactId>
                  <version>3.8.1</version>
              </plugin>

              <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>3.1.1</version>
                <configuration>
                  <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                  </descriptorRefs>
                </configuration>
                <executions>
                  <execution>
                    <id>make-assembly</id> 
                    <phase>package</phase> 
                    <goals>
                      <goal>single</goal>
                    </goals>
                  </execution>
                </executions>
              </plugin>
          </plugins>
      </pluginManagement>
  </build>

</project>

【问题讨论】:

  • 你没有在 pom.xml 中指定任何依赖项。 junit 依赖在范围测试中,所以它不会出现在 jar 中
  • 你的执行需要进入 ,而不是 maven.apache.org/plugins/maven-assembly-plugin/usage.html
  • &lt;pluginManagement&gt; 中的声明实际上什么都不做。它们只是一个模板,在&lt;build&gt;&lt;plugins&gt;&lt;plugin&gt;... 中实际使用插件时应该使用什么配置。

标签: maven mvn-repo


【解决方案1】:

我们的执行需要进去,而不是见maven.apache.org/plugins/maven-assembly-plugin/usage.html

【讨论】:

  • 这是我的评论的复制和粘贴,移除了 XML 标记吗?
猜你喜欢
  • 2019-06-28
  • 2017-12-22
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 2015-05-18
  • 2018-10-25
相关资源
最近更新 更多