Der endgültige Glasname kann nicht mit dem Maven-Assembly-Plugin festgelegt werden

74

So habe ich konfiguriert maven-assembly-plugin

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <finalName>myapp</finalName>
        <archive>
            <manifest>
                <mainClass>com.myapp.Main</mainClass>
            </manifest>
        </archive>
        <!--
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
        -->
    </configuration>
</plugin>

und ich erwarte, dass die endgültige JAR-Datei sein sollte, myapp.jaraber es endet mitmyapp-jar-with-dependencies.jar

Können Sie mir sagen, wie ich konfigurieren soll, um "jar-with-dependencies"vom endgültigen Namen auszuschließen ?

Truong Ha
quelle

Antworten:

185

Sie können die finalNameEigenschaft angeben , um dem JAR den gewünschten Namen zu geben, und angeben, appendAssemblyIddass false sein soll, um das jar-with-dependenciesSuffix zu vermeiden . Die folgende Konfiguration gibt ein Glas mit dem Namen austest.jar

         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <finalName>test</finalName>
                <archive>
                    <manifest>
                        <mainClass>com.myapp.Main</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
               <appendAssemblyId>false</appendAssemblyId>
            </configuration>
         </plugin>
Sasankad
quelle
9
Sie sollten auch <descriptorRefs>etwas auskommentieren, sonst bekommen Sie so etwas: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:2.4:attached (default) on project ...: Error reading assemblies: No assembly descriptors found.
Tsayen
5
Hervorragend ist <appendAssemblyId>false</appendAssemblyId>diese Linie notwendig.
GOXR3PLUS
Das Tag "finalName" ist nicht im Assembly Plugin v3.x
James Selvakumar
2
Aber das erzeugt einen[WARNING] Configuration options: 'appendAssemblyId' is set to false, and 'classifier' is missing
Isapir
@isapir, ich habe nach einer Lösung gegoogelt und es scheint, dass dies wie dokumentiert funktioniert . Siehe Issues.apache.org/jira/browse/MASSEMBLY-824 . Es wurde auch auf maven.apache.org/plugins/maven-assembly-plugin/… verwiesen , wobei im ID-Feld die ID dieser Assembly festgelegt ist. Dies ist ein symbolischer Name für eine bestimmte Zusammenstellung von Dateien aus diesem Projekt. Abgesehen davon, dass das zusammengestellte Paket durch Anhängen seines Werts an das generierte Archiv eindeutig benannt wird, wird die ID bei der Bereitstellung als Klassifizierer Ihres Artefakts verwendet . Ich verstehe es immer noch nicht ganz.
PatS