From bb9bff9fa003c706316290b854dba1794c508ca5 Mon Sep 17 00:00:00 2001
From: tpietzsch <tobias.pietzsch@gmail.com>
Date: Thu, 30 Apr 2020 21:02:39 +0200
Subject: [PATCH] Package with maven-shade-plugin (mvn clean package -P fatjar)

---
 pom.xml | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 58 insertions(+)

diff --git a/pom.xml b/pom.xml
index 410704e..5b2faf0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -77,6 +77,7 @@
 
 	<properties>
 		<package-name>bdv.server</package-name>
+		<main-class>bdv.server.BigDataServer</main-class>
 		<license.licenseName>gpl_v3</license.licenseName>
 		<license.copyrightOwners>BigDataViewer developers.</license.copyrightOwners>
 
@@ -120,4 +121,61 @@
 			<version>${commons-cli.version}</version>
 		</dependency>
 	</dependencies>
+
+	<profiles>
+		<profile>
+			<id>fatjar</id>
+			<build>
+				<plugins>
+					<!-- Maven shade for Uber Jar -->
+					<!-- https://maven.apache.org/plugins/maven-shade-plugin/shade-mojo.html -->
+					<!-- https://databricks.gitbooks.io/databricks-spark-knowledge-base/content/troubleshooting/missing_dependencies_in_jar_files.html -->
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-shade-plugin</artifactId>
+						<configuration>
+							<!-- Do not minimize for now to speed up packaging. -->
+							<transformers combine.children="append">
+								<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
+									<resource>META-INF/json/org.scijava.plugin.Plugin</resource>
+								</transformer>
+								<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
+									<resource>META-INF/json/mpicbg.spim.data.generic.sequence.ImgLoaderIo</resource>
+								</transformer>
+							</transformers>
+							<!--<minimizeJar>true</minimizeJar> -->
+							<filters>
+								<filter>
+									<artifact>*:*</artifact>
+									<excludes>
+										<exclude>META-INF/*.SF</exclude>
+										<exclude>META-INF/*.DSA</exclude>
+										<exclude>META-INF/*.RSA</exclude>
+									</excludes>
+								</filter>
+							</filters>
+							<!-- Additional configuration. -->
+							<relocations>
+								<relocation>
+									<pattern>org.apache.commons.compress</pattern>
+									<shadedPattern>org.janelia.saalfeldlab.org.apache.commons.compress</shadedPattern>
+								</relocation>
+							</relocations>
+						</configuration>
+						<!-- binds by default to package phase -->
+						<executions>
+							<execution>
+								<phase>package</phase>
+								<goals>
+									<goal>shade</goal>
+								</goals>
+							</execution>
+						</executions>
+					</plugin>
+					<!-- Maven shade end -->
+				</plugins>
+			</build>
+		</profile>
+	</profiles>
+
 </project>
-- 
GitLab