Rename Oily Jars with Maven

When I create a jar file, I want to fit into my dependencies. For this, I use maven-assembly-plugin, for example:

<build>
    ...
    <plugins>
        ...
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <finalName>${project.artifactId}-GUI</finalName>
                <archive>
                    <manifest>
                        <mainClass>gui.MyMainClass</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <!-- <appendAssemblyId>false</appendAssemblyId>-->
            </configuration>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
 </build>

This code works fine, and it does what it expected to do. However, this creates a new jar with a name myjar-GUI-jar-with-dependencies.jar. I would like to exclude the end of "jar-with-dependencies". Does anyone know how to do this?

I used this commented out line that you can see in my code, but it causes the following warning that I do not know how to solve it:

[WARNING] Configuration options: 'appendAssemblyId' is set to false, and 'classifier' is missing.
Instead of attaching the assembly file: [myJar-GUI].jar, it will become the file for main project artifact.
NOTE: If multiple descriptors or descriptor-formats are provided for this project, the value of this file will be non-deterministic!
[WARNING] Replacing pre-existing project main-artifact file: [myJar].jar with assembly file: [myJar-GUI].jar

EDITED

After the solution suggested by the user Tunaki, I used different pluggin and maven, since I want him to do this. The code is as follows:

            <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>2.4.2</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <transformers>
                    <transformer
                        implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                        <mainClass>gui.SparkISGUI</mainClass>
                    </transformer>
                </transformers>
            </configuration>
        </plugin>
+4
1

-, , .

Maven , . jar maven-jar-plugin. JAR , .

, classifier:

, Maven. .

, .

, , uber-jar? , . JAR, , - uber-jar maven-assembly-plugin. , jar-with-dependencies.

, , uber-jar. maven-assembly-plugin . : , .


maven-assembly-plugin, , uber-jar maven-shade-plugin:

uber-jar, - - .

+7

Source: https://habr.com/ru/post/1623566/


All Articles