最近工作外时间帮别的项目组做一个小工具,使用swing gui,在集成开发环境里面运行没问题了。打包发布给他们用,碰到了各种各样的问题,要么是找不到main函数,要么是找不到第三方jar包里的class。一般用Spring、SpringBoot这些框架做web应用,用spring-boot-maven-plugin很方便,现在这种非springboot的应用,得重新找打包的plugin。
找了各种工具,总算找到一个能用的maven-shade-plugin,解决了问题。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>${project.build.sourceVersion}</source>
<target>${project.build.targetVersion}</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<filters>
<filter>
<artifact>*.*</artifact>
<excludes>
<exclude>META-INF/*.MF</exclude>
</excludes>
</filter>
</filters>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.sifang.flyway.AppMain</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
执行mvn package,target目录下生成了jar包。不知道original打头的是干嘛的,不管了。
?执行java -jar,程序正常运行,调用第三方jar中的类也没问题。
?用rar打开打包好的文件看一下,发现他把第三方jar包都打散了,目录有点乱。能运行就行了,这些小问题没时间去深入研究了。
?
|