如何使用 maven-assembly-plugin 版本 3 设置最终 jar 名称

How to set final jar name with maven-assembly-plugin version 3

在旧版本的插件中,您可以使用 <finalName>,但不再存在。 目前我正在获取 projectName-version-jar-with-dependencies.jar 并且最好更改它。

finalName 参数是在项目构建部分而不是插件配置中设置的。

所以基本上:

<build>
   <finalName>xyz</finalName>
   <plugins>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        ....
      </plugin>
   </plugins>
</build>

程序集插件通过读取 属性 ${project.build.finalName} 获得最终名称,并且是一个只读参数。

至少代码是这么写的:http://svn.apache.org/viewvc/maven/plugins/tags/maven-assembly-plugin-3.0.0/src/main/java/org/apache/maven/plugins/assembly/mojos/AbstractAssemblyMojo.java?view=markup

在多模块项目中,我在每个模块中创建了程序集。为了更改名称,我使用了一个名为 'assembly' 的新子模块,并将所有单个模块程序集收集到一个新目录中。此时,您可以更改输出名称。我正在关注此常见问题 https://maven.apache.org/plugins/maven-assembly-plugin/faq.html#module-binaries

我的最终组装(所有模块组装的集合看起来像这样):

<assembly>
    <id>final</id>
    <formats>
        <format>dir</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <moduleSets>
      <moduleSet>
        <useAllReactorProjects>true</useAllReactorProjects>
        <binaries>
            <attachmentClassifier>jar-with-dependencies</attachmentClassifier>
            <outputDirectory>dist/${module.artifactId}</outputDirectory>
            <unpack>false</unpack>
            <includeDependencies>false</includeDependencies>
        </binaries>
      </moduleSet>
    </modulesSets>
</assembly>

这应该只允许您更改程序集文件的工件名称。