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>

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.


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>

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>
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.