Comment puis-je changer le nom de la guerre généré par le plugin d'assemblage Maven

87

Comment puis-je changer le nom 1.0.snapshot-jar-with-dependenciesen quelque chose d'autre, voici le contenu de mon 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>
Gandalf StormCrow
la source

Réponses:

168

Utilisez ce qui suit dans la configuration de maven-assembly-plugin:

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

Tous les détails dans la documentation officielle du assembly:singlemojo.

Pascal Thivent
la source
8
assembly: l'assembly est obsolète, veuillez utiliser assembly: single
lordB8r
Aussi très utile lors de l'utilisation de l'assembly: single avec un descripteur de format "dir". En utilisant "." signifie que outputdir spécifié sera vrai output dir
Peter Kahn
88

Vous pouvez y parvenir en spécifiant la finalNamepropriété dans votre pom, par exemple

<build>
    <finalName>something-else</finalName>
    ...
</build>
Péter Török
la source
4
encore une fois, j'obtiens quelque chose-d'autre-jar-avec-dépendances cela a fonctionné, comment puis-je me débarrasser de jar-with-dependencies, quand je supprime descriptorRefs, j'obtiens une erreur de construction
Gandalf StormCrow
7
En effet, vous aurez besoin de la <appendAssemblyId>false</appendAssemblyId>balise comme suggéré par Pascal.
tstorms le
Notez que le suffixe sera ajouté à ce nom.
Martin Serrano
5

Dans le cas de l'empaquetage d'un JAR avec des dépendances, le. Vous allez le réparer en utilisant le plugin de dépendance:

        <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
la source