我如何更改由Maven程序集插件生成的战争名称


87

如何将名称从更改为其他名称1.0.snapshot-jar-with-dependencies,以下是我的POM的内容:

<build>
    <plugins>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.2-beta-5</version>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>com.package.example.MainClass</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
        </plugin>
    </plugins>
</build>

Answers:


168

在的配置中使用以下内容maven-assembly-plugin

<configuration>
  <finalName>custom-name</finalName>
  <appendAssemblyId>false</appendAssemblyId>
</configuration>

assembly:singleMojo官方文档中的完整详细信息。


8
组装:组装已被弃用,请使用组装:单个
lordB8r 2014年

在使用assembly:single和“ dir”格式描述符时也非常有用。使用“。” 表示指定的outputdir将是真实的输出目录
Peter Kahn

88

您可以通过finalName在pom中指定属性来实现此目的,例如

<build>
    <finalName>something-else</finalName>
    ...
</build>

4
再次,我得到了一个其他的具有依赖关系的罐子,这工作了,当我删除描述符
引用

7
实际上,您将需要<appendAssemblyId>false</appendAssemblyId>Pascal建议的标签。
2014年

注意,后缀将附加到该名称之后。
马丁·塞拉诺

5

在打包具有依赖项的JAR的情况下,将无法工作。您将使用依赖插件来修复它:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>copy</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy</goal>
                    </goals>
                    <configuration>
                        <artifactItems>
                            <artifactItem>
                                <groupId>project.group.id</groupId>
                                <artifactId>artifact-id</artifactId>
                                <version>0.0.1-SNAPSHOT</version>
                                <type>jar</type>
                                <overWrite>true</overWrite>
                                <outputDirectory>${basedir}/some/dir</outputDirectory>
                                <destFileName>custom-name.jar</destFileName>
                            </artifactItem>
                        </artifactItems>
                        <overWriteReleases>false</overWriteReleases>
                        <overWriteSnapshots>true</overWriteSnapshots>
                    </configuration>
                </execution>
            </executions>
        </plugin>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.