Fix fat JAR generation

* Replace Maven Assembly Plugin with Maven Shade Plugin
* Extract main method to separate Main class
This commit is contained in:
Kai S. K. Engelbart 2020-07-05 16:11:00 +02:00
parent da78d1cbb7
commit 097f8feb12
3 changed files with 40 additions and 20 deletions

21
pom.xml
View File

@ -61,23 +61,22 @@
<plugins> <plugins>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId> <artifactId>maven-shade-plugin</artifactId>
<version>3.2.0</version> <version>3.2.4</version>
<executions> <executions>
<execution> <execution>
<phase>package</phase> <phase>package</phase>
<goals> <goals>
<goal>single</goal> <goal>shade</goal>
</goals> </goals>
<configuration> <configuration>
<archive> <shadedArtifactAttached>true</shadedArtifactAttached>
<manifest> <sharedClassifierName>envoy</sharedClassifierName>
<mainClass>envoy.client.ui.Startup</mainClass> <transformers>
</manifest> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
</archive> <mainClass>envoy.client.Main</mainClass>
<descriptorRefs> </transformer>
<descriptorRef>jar-with-dependencies</descriptorRef> </transformers>
</descriptorRefs>
</configuration> </configuration>
</execution> </execution>
</executions> </executions>

View File

@ -0,0 +1,30 @@
package envoy.client;
import javafx.application.Application;
import envoy.client.ui.Startup;
/**
* Triggers application startup.
* <p>
* To allow Maven shading, the main method has to be separated from the
* {@link Startup} class which extends {@link Application}.
* <p>
* Project: <strong>envoy-client</strong><br>
* File: <strong>Main.java</strong><br>
* Created: <strong>05.07.2020</strong><br>
*
* @author Kai S. K. Engelbart
* @since Envoy Client v0.1-beta
*/
public class Main {
/**
* Starts the application.
*
* @param args the command line arguments are processed by the
* client configuration
* @since Envoy Client v0.1-beta
*/
public static void main(String[] args) { Application.launch(Startup.class, args); }
}

View File

@ -128,13 +128,4 @@ public final class Startup extends Application {
logger.log(Level.SEVERE, "Unable to save local files: ", e); logger.log(Level.SEVERE, "Unable to save local files: ", e);
} }
} }
/**
* Starts the application.
*
* @param args the command line arguments are processed by the
* {@link ClientConfig}
* @since Envoy Client v0.1-beta
*/
public static void main(String[] args) { launch(args); }
} }