相关疑难解决方法(0)

maven-assembly-plugin:如何使用appendAssemblyId

我有一个多模块Maven项目,在一个模块中我想在构建期间创建两个工件:

  • 主要工件是一个jar库,其他一些模块将依赖于它.
  • 一个执行一些辅助函数的可执行jar文件.没有其他模块依赖于此,它仅供用户在某些情况下手动运行.

这是我用来配置maven-assembly-plugin插件的代码:

<plugin>
    <artifactId>
        maven-assembly-plugin
    </artifactId>
    <version>2.4</version>
    <executions>
      <execution>
        <id>dist-assembly</id>
        <phase>package</phase>
        <goals>
          <goal>single</goal>
        </goals>

        <configuration>
          <finalName>bso</finalName>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
          <finalName>helper-${project.version}</finalName>
          <appendAssemblyId>false</appendAssemblyId>
          <archive>
            <manifest>
              <mainClass>HelperMain<mainClass>
            </manifest>
          </archive>
        </configuration>

      </execution>
    </executions>
  </plugin>
Run Code Online (Sandbox Code Playgroud)

我正在设置appendAssemblyId,false因为否则-jar-with-dependencies将附加到最终名称,我不认为有必要.省略它可以提供更清晰,更易于使用的文件名.

当我跑步时,mvn integration-test我收到以下警告:

[警告]配置选项:'appendAssemblyId'设置为false,并且缺少'classifier'.它不会附加汇编文件:[...]/target/helper-5.0.0-SNAPSHOT.jar,而是成为主项目工件的文件.

注意:如果为此项目提供了多个描述符或描述符格式,则此文件的值将是不确定的!

[警告]用程序集文件替换预先存在的项目主工件文件:[...]/target/my.module-5.0.0-SNAPSHOT.jar:[...]/target/helper-5.0.0- SNAPSHOT.jar

有两件事激怒了我:

  1. 尽管警告声称它将用helper-5.0.0-SNAPSHOT.jar替换my.module-5.0.0-SNAPSHOT.jar,但它实际上并没有这样做,并且当构建完成时,两个文件仍然具有不同的大小.

  2. 为什么有关更换工件的警告出现?

  3. 似乎classifier已弃用为什么警告要求我使用它?

java maven maven-assembly-plugin

21
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×1

maven ×1

maven-assembly-plugin ×1