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

时间:2017-07-14 10:45:29

标签: maven-assembly-plugin

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

在多模块项目中,我在每个模块中创建了程序集。为了更改名称,我使用了一个名为“ 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>

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