打包第二次尝试:可以将maven依赖库和本地库打入jar包;打入的依赖包过多,导致与安卓依赖包冲突

This commit is contained in:
free will
2021-05-13 11:45:12 +08:00
parent a23fc283d4
commit 72cbf851fc
3 changed files with 404 additions and 9 deletions
+73 -9
View File
@@ -18,21 +18,29 @@
</resource> </resource>
</resources> </resources>
<plugins> <plugins>
<!-- Maven Assembly Plugin 2.4.1-->
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId> <artifactId>maven-assembly-plugin</artifactId>
<version>2.4.1</version> <version>3.3.0</version>
<configuration> <configuration>
<!-- get all project dependencies --> <!-- get all project dependencies -->
<descriptorRefs> <!-- <descriptorRefs>-->
<descriptorRef>jar-with-dependencies</descriptorRef> <!-- <descriptorRef>jar-with-dependencies</descriptorRef>-->
</descriptorRefs> <!-- </descriptorRefs>-->
<descriptors>
<!--assembly配置文件路径,注意需要在项目中新建文件properties/assembly-release.xml-->
<descriptor>properties/assembly-release.xml</descriptor>
</descriptors>
<!-- MainClass in mainfest make a executable jar --> <!-- MainClass in mainfest make a executable jar -->
<!-- <archive>--> <archive>
<!-- <manifest>--> <manifest>
<!-- <mainClass></mainClass>--> <mainClass>min.Main</mainClass>
<!-- </manifest>--> </manifest>
<!-- </archive>--> <manifestEntries>
<Class-Path>lib/*.jar</Class-Path>
</manifestEntries>
</archive>
</configuration> </configuration>
<executions> <executions>
<execution> <execution>
@@ -46,6 +54,62 @@
</executions> </executions>
</plugin> </plugin>
<!-- <plugin>-->
<!-- <groupId>org.apache.maven.plugins</groupId>-->
<!-- <artifactId>maven-jar-plugin</artifactId>-->
<!-- <configuration>-->
<!-- <archive>-->
<!-- <manifest>-->
<!-- <mainClass>org.noahx.onejartest.Launcher</mainClass>-->
<!-- </manifest>-->
<!-- </archive>-->
<!-- </configuration>-->
<!-- </plugin>-->
<!-- <plugin>-->
<!-- <groupId>com.jolira</groupId>-->
<!-- <artifactId>onejar-maven-plugin</artifactId>-->
<!-- <version>1.4.4</version>-->
<!-- <executions>-->
<!-- <execution>-->
<!-- <configuration>-->
<!-- <attachToBuild>true</attachToBuild>-->
<!-- <classifier>onejar</classifier>-->
<!-- </configuration>-->
<!-- <goals>-->
<!-- <goal>one-jar</goal>-->
<!-- </goals>-->
<!-- </execution>-->
<!-- </executions>-->
<!-- </plugin>-->
<!-- <plugin>-->
<!-- <groupId>org.apache.maven.plugins</groupId>-->
<!-- <artifactId>maven-assembly-plugin</artifactId>-->
<!-- <version>2.4.1</version>-->
<!-- <configuration>-->
<!-- &lt;!&ndash; get all project dependencies &ndash;&gt;-->
<!-- <descriptorRefs>-->
<!-- <descriptorRef>jar-with-dependencies</descriptorRef>-->
<!-- </descriptorRefs>-->
<!-- &lt;!&ndash; MainClass in mainfest make a executable jar &ndash;&gt;-->
<!--&lt;!&ndash; <archive>&ndash;&gt;-->
<!--&lt;!&ndash; <manifest>&ndash;&gt;-->
<!--&lt;!&ndash; <mainClass></mainClass>&ndash;&gt;-->
<!--&lt;!&ndash; </manifest>&ndash;&gt;-->
<!--&lt;!&ndash; </archive>&ndash;&gt;-->
<!-- </configuration>-->
<!-- <executions>-->
<!-- <execution>-->
<!-- <id>make-assembly</id>-->
<!-- &lt;!&ndash; bind to the packaging phase &ndash;&gt;-->
<!-- <phase>package</phase>-->
<!-- <goals>-->
<!-- <goal>single</goal>-->
<!-- </goals>-->
<!-- </execution>-->
<!-- </executions>-->
<!-- </plugin>-->
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
+24
View File
@@ -0,0 +1,24 @@
<assembly xmlns = "http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0
http://maven.apache.org/xsd/assembly-1.1.0.xsd">
<id>release</id>
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<outputDirectory>/</outputDirectory>
<useProjectArtifact>true</useProjectArtifact>
<unpack>true</unpack>
<scope>runtime</scope>
</dependencySet>
<dependencySet>
<outputDirectory>/</outputDirectory>
<useProjectArtifact>true</useProjectArtifact>
<unpack>true</unpack>
<scope>system</scope>
</dependencySet>
</dependencySets>
</assembly>
+307
View File
@@ -0,0 +1,307 @@
<project xmlns = "http://maven.apache.org/POM/4.0.0"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- 模型版本 -->
<modelVersion>4.0.0</modelVersion>
<!-- 公司或者组织的唯一标志,并且配置时生成的路径也是由此生成, 如com.companyname.project-groupmaven会将该项目打成的jar包放本地路径:/com/companyname/project-group -->
<groupId>min</groupId>
<!-- 项目的唯一ID,一个groupId下面可能多个项目,就是靠artifactId来区分的 -->
<artifactId>min-vpn</artifactId>
<!-- 版本号 -->
<version>1.0</version>
<properties>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
</properties>
<build>
<plugins>
<!-- <plugin>-->
<!-- <groupId>org.apache.maven.plugins</groupId>-->
<!-- <artifactId>maven-compiler-plugin</artifactId>-->
<!-- <configuration>-->
<!-- <source>1.8</source>-->
<!-- <target>1.8</target>-->
<!-- <compilerArguments>-->
<!-- <extdirs>${project.basedir}/libs</extdirs>-->
<!-- </compilerArguments>-->
<!-- </configuration>-->
<!-- </plugin>-->
<!-- Maven Assembly Plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<!-- get all project dependencies -->
<!-- <descriptorRefs>-->
<!-- <descriptorRef>jar-with-dependencies</descriptorRef>-->
<!-- </descriptorRefs>-->
<descriptors>
<!--assembly配置文件路径,注意需要在项目中新建文件properties/assembly-release.xml-->
<descriptor>properties/assembly-release.xml</descriptor>
</descriptors>
<!-- MainClass in mainfest make a executable jar -->
<archive>
<manifest>
<mainClass>min.Main</mainClass>
</manifest>
<manifestEntries>
<Class-Path>libs/*.jar</Class-Path>
</manifestEntries>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<!-- bind to the packaging phase -->
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<!--<plugin>-->
<!--<groupId>com.github.wvengen</groupId>-->
<!--<artifactId>proguard-maven-plugin</artifactId>-->
<!--&lt;!&ndash; <executions>&ndash;&gt;-->
<!--&lt;!&ndash; <execution>&ndash;&gt;-->
<!--&lt;!&ndash; <phase>package</phase>&ndash;&gt;-->
<!--&lt;!&ndash; <goals>&ndash;&gt;-->
<!--&lt;!&ndash; <goal>proguard</goal>&ndash;&gt;-->
<!--&lt;!&ndash; </goals>&ndash;&gt;-->
<!--&lt;!&ndash; </execution>&ndash;&gt;-->
<!--&lt;!&ndash; </executions>&ndash;&gt;-->
<!--<configuration>-->
<!--<proguardVersion>6.2.2</proguardVersion>-->
<!--<injar>${project.build.finalName}-release.jar</injar>-->
<!--<outjar>${project.build.finalName}-pg.jar</outjar>-->
<!--<obfuscate>true</obfuscate>-->
<!--<proguardInclude>${project.basedir}/proguard.cfg</proguardInclude>-->
<!--<libs>-->
<!--&lt;!&ndash; Include main JAVA library required.&ndash;&gt;-->
<!--<lib>${java.home}/lib/rt.jar</lib>-->
<!--&lt;!&ndash; Include crypto JAVA library if necessary.&ndash;&gt;-->
<!--<lib>${java.home}/lib/jce.jar</lib>-->
<!--<lib>${java.home}/lib/ext/jfxrt.jar</lib>-->
<!--<lib>${java.home}/lib/jfxswt.jar</lib>-->
<!--&lt;!&ndash; <lib>${java.home}/lib/</lib>&ndash;&gt;-->
<!--</libs>-->
<!--&lt;!&ndash; <options>&ndash;&gt;-->
<!--&lt;!&ndash; <option>-target 1.8</option>&ndash;&gt;-->
<!--&lt;!&ndash; <option>-dontoptimize</option>&ndash;&gt;-->
<!--&lt;!&ndash; <option>-dontshrink</option>&ndash;&gt;-->
<!--&lt;!&ndash;&lt;!&ndash; <option>-keepattributes *Annotation*</option>&ndash;&gt;&ndash;&gt;-->
<!--&lt;!&ndash;&lt;!&ndash; <option>-keepattributes Signature</option>&ndash;&gt;&ndash;&gt;-->
<!--&lt;!&ndash;&lt;!&ndash; <option>-keepattributes InnerClasses</option>&ndash;&gt;&ndash;&gt;-->
<!--&lt;!&ndash;&lt;!&ndash; <option>-keepattributes InnerClasses,EnclosingMethod</option>&ndash;&gt;&ndash;&gt;-->
<!--&lt;!&ndash; <option>-keepattributes javafx.fxml.FXML,Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod,LocalVariable*Table,Synthetic</option>&ndash;&gt;-->
<!--&lt;!&ndash; <option>-useuniqueclassmembernames</option>&ndash;&gt;-->
<!--&lt;!&ndash; <option>-keepclassmembers enum * { *; }</option>&ndash;&gt;-->
<!--&lt;!&ndash; <option>-dontwarn</option>&ndash;&gt;-->
<!--&lt;!&ndash;&lt;!&ndash; <option>-keep class min.Main*{*;}</option>&ndash;&gt;&ndash;&gt;-->
<!--&lt;!&ndash; <option>-keepclasseswithmembers public class * { public static void main(java.lang.String[]);}</option>&ndash;&gt;-->
<!--&lt;!&ndash; <option>-dontusemixedcaseclassnames</option>&ndash;&gt;-->
<!--&lt;!&ndash; <option>-keep class **.log4j.** { *; }</option>&ndash;&gt;-->
<!--&lt;!&ndash; <option>-keep class **.slf4j.** { *; }</option>&ndash;&gt;-->
<!--&lt;!&ndash; <option>-keep class **.logback.** { *; }</option>&ndash;&gt;-->
<!--&lt;!&ndash; <option>-keep class **.netty.** { *; }</option>&ndash;&gt;-->
<!--&lt;!&ndash; <option>-keep class sun.misc.Unsafe { *; }</option>&ndash;&gt;-->
<!--&lt;!&ndash; <option>-keep class org.bouncycastle.** { *; }</option>&ndash;&gt;-->
<!--&lt;!&ndash; <option>-keep class org.sqlite.** { *; }</option>&ndash;&gt;-->
<!--&lt;!&ndash; <option>-keep class **.netty.** { *; }</option>&ndash;&gt;-->
<!--&lt;!&ndash; <option>-keep class org.apache.commons.codec.** { *; }</option>&ndash;&gt;-->
<!--&lt;!&ndash; <option>-keepnames class com.fasterxml.jackson.** { *; }</option>&ndash;&gt;-->
<!--&lt;!&ndash; <option>-keep class org.codehaus.** { *; }</option>&ndash;&gt;-->
<!--&lt;!&ndash; <option>-keepclassmembers public final enum org.codehaus.jackson.annotate.JsonAutoDetect$Visibility {&ndash;&gt;-->
<!--&lt;!&ndash; public static final org.codehaus.jackson.annotate.JsonAutoDetect$Visibility *; }</option>&ndash;&gt;-->
<!--&lt;!&ndash; <option>-keep class min.config.** { *; }</option>&ndash;&gt;-->
<!--&lt;!&ndash; <option>-keep class min.util.DataFormat.$* { *; }</option>&ndash;&gt;-->
<!--&lt;!&ndash; <option>-keepnames class min.util.DataFormat, min.util.DataFormat.$* {&ndash;&gt;-->
<!--&lt;!&ndash; public <fields>;&ndash;&gt;-->
<!--&lt;!&ndash; public <methods>;&ndash;&gt;-->
<!--&lt;!&ndash; }&ndash;&gt;-->
<!--&lt;!&ndash; </option>&ndash;&gt;-->
<!--&lt;!&ndash; <option>-keepclassmembers class * {&ndash;&gt;-->
<!--&lt;!&ndash; @javafx.fxml.FXML *;&ndash;&gt;-->
<!--&lt;!&ndash; @javax.inject.Inject *;&ndash;&gt;-->
<!--&lt;!&ndash; @javax.annotation.PostConstruct *;&ndash;&gt;-->
<!--&lt;!&ndash; }</option>&ndash;&gt;-->
<!--&lt;!&ndash; <option>-adaptresourcefilenames **.fxml,**.png,**.css,**.properties</option>&ndash;&gt;-->
<!--&lt;!&ndash; <option>-adaptresourcefilecontents **.fxml</option>&ndash;&gt;-->
<!--&lt;!&ndash; <option>-adaptclassstrings</option>&ndash;&gt;-->
<!--&lt;!&ndash; <option>-printmapping out.map</option>&ndash;&gt;-->
<!--&lt;!&ndash; <option>-renamesourcefileattribute SourceFile</option>&ndash;&gt;-->
<!--&lt;!&ndash; <option>-keepattributes SourceFile,LineNumberTable</option>&ndash;&gt;-->
<!--&lt;!&ndash; </options>&ndash;&gt;-->
<!--</configuration>-->
<!--<dependencies>-->
<!--&lt;!&ndash; https://mvnrepository.com/artifact/net.sf.proguard/proguard-base &ndash;&gt;-->
<!--<dependency>-->
<!--<groupId>net.sf.proguard</groupId>-->
<!--<artifactId>proguard-base</artifactId>-->
<!--<version>6.2.2</version>-->
<!--</dependency>-->
<!--</dependencies>-->
<!--</plugin>-->
<plugin>
<!-- https://gitee.com/roseboy/classfinal -->
<groupId>net.roseboy</groupId>
<artifactId>classfinal-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<password>#</password><!--加密打包之后pom.xml会被删除,不用担心在jar包里找到此密码-->
<packages>min</packages>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>classFinal</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>libs</directory>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*</include>
</includes>
</resource>
</resources>
</build>
<dependencies>
<!-- https://mvnrepository.com/artifact/commons-codec/commons-codec -->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.13</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.2.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.2.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.2.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.json/json -->
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20080701</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.google.zxing/core -->
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.4.0</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
<!-- <scope>test</scope>-->
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>4.1.42.Final</version>
</dependency>
<dependency>
<groupId>MINSocket</groupId>
<artifactId>MINSocket</artifactId>
<version>1.1.2</version>
<scope>system</scope>
<systemPath>${basedir}/libs/MINSocket-1.1.2-all.jar</systemPath>
</dependency>
<dependency>
<groupId>gmhelper</groupId>
<artifactId>gmhelper</artifactId>
<version>1.0.0</version>
<scope>system</scope>
<systemPath>${basedir}/libs/gmhelper.jar</systemPath>
</dependency>
<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic -->
<!-- &lt;!&ndash; https://mvnrepository.com/artifact/io.netty/netty-all &ndash;&gt;-->
<!-- https://mvnrepository.com/artifact/net.java.dev.jna/jna -->
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>5.5.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/net.java.dev.jna/jna-platform -->
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna-platform</artifactId>
<version>5.5.0</version>
</dependency>
<!-- &lt;!&ndash; https://mvnrepository.com/artifact/com.nativelibs4java/jnaerator &ndash;&gt;-->
<!-- <dependency>-->
<!-- <groupId>com.nativelibs4java</groupId>-->
<!-- <artifactId>jnaerator</artifactId>-->
<!-- <version>0.12</version>-->
<!-- </dependency>-->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.65</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk15on</artifactId>
<version>1.65</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.1</version>
<scope>test</scope>
</dependency>
<!-- <dependency>-->
<!-- <groupId>net.sf.proguard</groupId>-->
<!-- <artifactId>proguard-base</artifactId>-->
<!-- <version>6.0.3</version>-->
<!-- </dependency>-->
</dependencies>
</project>