maven包含Main类的项目打包
来源:互联网 发布:电话短信轰炸机软件 编辑:程序博客网 时间:2024/04/29 01:22
写了一个简单的小工具想把它打包出来,使用的是maven-shade-plugin插件,这个插件会将你项目依赖的所有jar包整合到uber-jar中.
具体参看:http://www.jianshu.com/p/7a0e20b30401
刚开始的时候是这样配置的:
<plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.3</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>com.test.mqtt.Server</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin> </plugins>
配置完之后clean和install操作完成之后开始尝试运行发现报了如下错误:
Error: A JNI error has occurred, please check your installation and try againException in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest main attributes at sun.security.util.SignatureFileVerifier.processImpl(Unknown Source) at sun.security.util.SignatureFileVerifier.process(Unknown Source) at java.util.jar.JarVerifier.processEntry(Unknown Source) at java.util.jar.JarVerifier.update(Unknown Source) at java.util.jar.JarFile.initializeVerifier(Unknown Source) at java.util.jar.JarFile.getInputStream(Unknown Source) at sun.misc.URLClassPath$JarLoader$2.getInputStream(Unknown Source) at sun.misc.Resource.cachedInputStream(Unknown Source) at sun.misc.Resource.getByteBuffer(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
网上是说是打包时导致某些包的重复引用(虽然不明所以,想去看看源码但是因为懒就算了)需要加上:
<filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> </excludes> </filter> </filters>
然后加完之后就成了这样
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.3</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> </excludes> </filter> </filters> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>com.test.mqtt.Server</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin> </plugins></build>
至此问题解决
阅读全文
0 0
- maven包含Main类的项目打包
- 利用MAVEN打包时,如何包含更多的资源文件(src/main/java,src/main/resources)
- maven-插件,打包包含依赖jar的项目
- 架构师之路(二十三)maven项目的web项目包含java项目打包
- Maven打包带main函数的jar
- maven打包--包含dependency的jar包
- 如何将maven项目包含工程依赖打包成可执行的jar
- maven打包包含源码
- Maven在打包Mybatis项目时候src/main/java下的Mapper.xml不会打进项目解决办法
- maven打包包含依赖jar Exception in thread "main" org.springframework.beans.fa
- maven打包带有main函数入口的jar
- 利用MAVEN打包时,如何包含更多的资源文件
- maven打包一个包含依赖jar包的可执行jar
- 利用MAVEN打包时,如何包含更多的资源文件
- 利用MAVEN打包时,如何包含更多的资源文件
- 利用MAVEN打包时,如何包含更多的资源文件
- 利用MAVEN打包时,如何包含更多的资源文件
- 利用MAVEN打包时,如何包含更多的资源文件
- android studio 配置
- 【leetcode】Median of Two Sorted Arrays
- .NET 程序集编程(五)
- json字符串转换为JSONObject和JSONArray
- SpringMVC与Struts2区别与比较总结
- maven包含Main类的项目打包
- sqlServer
- TCP协议栈知识实例
- 函数
- 【noip2007】树网的核
- DjVu格式的两大优势?
- Linux下切换Python版本
- Java设计模式(四) 观察者模式
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(三)搭建步骤