更改jar文件名以输出maven jar-with-dependencies?

时间:2015-04-20 18:21:38

标签: maven maven-assembly-plugin

我使用maven-assembly-plugin的jar-with-dependencies descriptorRef创建了一个包含多个项目代码的JAR,如下所述:Including dependencies in a jar with Maven

但是如何让它生成输出文件foo-1.0.jar而不是丑陋的foo-1.0-SNAPSHOT-jar-with-dependencies.jar?我不需要不包含其他项目的默认JAR。

2 个答案:

答案 0 :(得分:2)

在maven-assembly-plugin中,你可以在配置 appendAssemblyId 的可选参数(默认设置为 true ) >程序集执行的标记。
使用此标记将生成两个警告,指示您可以覆盖工件的主要构建(由maven-jar-plugin完成)。
如果您不想在 appendAssemblyId 设置为 false 的情况下覆盖此jar,则可以决定在另一个具有属性<的文件夹中构建程序集强>输出目录即可。
或者另一个解决方案,如果你可以在你的jar名称的末尾附加一些东西就是创建你自己的程序集描述符。

(有关现有参数或如何创建自己的程序集描述符的更多信息,请参阅此处的插件文档:https://maven.apache.org/plugins/maven-assembly-plugin/assembly-mojo.html

<plugin>
  <artifactId>maven-assembly-plugin</artifactId>
  <version>2.5.3</version>
  <executions>
    <execution>
      <id>jar-with-dependencies</id>
      <phase>package</phase>
      <goals>
        <goal>single</goal>
      </goals>
      <configuration>
        <descriptorRefs>
          <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
        <appendAssemblyId>false</appendAssemblyId>
        <outputDirectory>${project.build.directory}/my-assembly/</outputDirectory>
      </configuration>
    </execution>
  </executions>
</plugin>

编辑:我编辑了我的答案,以使其更完整。

答案 1 :(得分:1)

这就是我最终做的事情。在我的pom.xml

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.5.3</version>
    <executions>
        <execution>
            <id>all</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <descriptors>
            <descriptor>all.xml</descriptor>
        </descriptors> 
    </configuration>
</plugin>

我指定了一个自行开发的程序集描述符,我通过将程序集文件jar-with-dependencies.xmlhttps://maven.apache.org/plugins/maven-assembly-plugin/descriptor-refs.html复制到本地文件all.xml中来改变id {{1}到jar-with-dependencies。 Voilà,现在生成的文件名是all,它可以用于我的目的。