Bagaimana cara mengubah nama perang yang dihasilkan oleh plugin perakitan maven

87

Bagaimana saya bisa mengganti nama dari yang 1.0.snapshot-jar-with-dependencieslain, di bawah ini adalah isi dari POM saya:

<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>
Gandalf StormCrow
sumber

Jawaban:

168

Gunakan yang berikut ini dalam konfigurasi maven-assembly-plugin:

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

Detail lengkapnya ada di dokumentasi resmi assembly:singlemojo.

Pascal Thivent
sumber
8
assembly: assembly sudah tidak digunakan lagi, gunakan assembly: single
lordB8r
Juga sangat berguna saat menggunakan assembly: single dengan deskriptor format "dir". Menggunakan "." berarti outputdir yang ditentukan akan menjadi output yang benar dir
Peter Kahn
88

Anda dapat mencapai ini dengan menentukan finalNameproperti di pom Anda, misalnya

<build>
    <finalName>something-else</finalName>
    ...
</build>
Péter Török
sumber
4
sekali lagi saya mendapatkan sesuatu-lain-jar-dengan-ketergantungan ini bekerja, bagaimana saya bisa menyingkirkan jar-dengan-ketergantungan, ketika saya menghapus deskriptorRefs saya mendapatkan kesalahan membangun
Gandalf StormCrow
7
Memang, Anda membutuhkan <appendAssemblyId>false</appendAssemblyId>tag seperti yang disarankan oleh Pascal.
badai
Perhatikan, sufiks akan ditambahkan ke nama ini.
Martin Serrano
5

Dalam kasus mengemas JAR dengan dependensi, itu tidak akan berfungsi. Anda akan memperbaikinya dengan menggunakan plugin ketergantungan:

        <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>
RickB
sumber