使用Gradle来打Jar包,在引入Gradle的java插件后,直接就能实现
在build.gradle文件中引入java插件
plugins { id 'java' }
然后配置maifest主类
jar { manifest { attributes "Main-Class": "cn.buddie.GradleTest" } }
最后执行jar任务就能打出来jar包了
gradle jar
但这样,打出来的Jar包中,只包含了自己编写的代码编译成的Class文件。其它依赖的Jar包中的类,不在其中。
解决方式有两种。
一种是引用application插件,通过distTar或distZip打包。这样生成的包里不仅包含了自己项目中写的源码编辑成的jar包,还包括gradle中配置依赖的jar包,同时还生成了shell和bat脚本,通过脚本,可以直接运行我们的程序。
另一种,是在打jar包,直接依赖的第三方类库中的类,一起打包到我们的jar中。
具体如下:
jar { manifestContentCharset 'utf-8' metadataCharset 'utf-8' manifest { attributes "Main-Class": "cn.buddie.GradleTest" } from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } }
这样打出来的jar包,可以使用java -jar的方式运行
java -jar myapp.jar
如果领导说,你即需要提供单个的jar,又需要提供tar包,怎么办呢?因为修改了task jar,而task distTar是依赖于task jar。这样的后果就是打出来的tar包中,已经包含了所有你依赖的第三方jar包,同时,你自己项目打出的jar包中,又包含了这些第三方jar包中的类。也就是所有第三方的类,都double了!
我这里最终成功的解决方案为:增加参数,让task jar根据参数来决定是否将第三方依赖类打入自己的jar包。
jar { manifestContentCharset 'utf-8' metadataCharset 'utf-8' manifest { attributes "Main-Class": "cn.buddie.GradleTest" } if (project.hasProperty("allInOne")) { from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } } }
这里增加了一个“allInOne”的参数,如果不指定参数,就不会将第三方依赖类打入jar包。这样在执行task distTar时,不指定参数,打出来的tar中,第三方依赖类就只有一份。
而在需要所有类在一个Jar包中的Jar文件时,可以使用参数打包
gradle jar -PallInOne
这样不管领导要什么包,都可以在不做任何改动的情况下,满足领导的需求
相关推荐
我就去网上去寻找,aar/jar包生成包含第三方等问题.网上也有很多答案,我随便发一个别人的链接, https://blog.csdn.net/qq_20328181/article/details/84333750,都是差不多的. 在这时候我遇到问题.里面说合并jar包,我的...
bcprov-jdk15on-***.jar中文文档.zip,java,bcprov-jdk15on-***.jar,org.bouncycastle,bcprov-jdk15on,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,bouncycastle,bcprov,jdk15on,中文API文档,手册,...
中文-英文对照文档,中英对照文档,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 【***.jar中文文档.zip】,再解压其中的 【***-...
中文-英文对照文档,中英对照文档,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 【***.jar中文文档.zip】,再解压其中的 【***-...
bcprov-jdk15on-***.jar中文文档.zip,java,bcprov-jdk15on-***.jar,org.bouncycastle,bcprov-jdk15on,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,bouncycastle,bcprov,jdk15on,中文API文档,手册,...
bcprov-jdk15on-***.jar中文文档.zip,java,bcprov-jdk15on-***.jar,org.bouncycastle,bcprov-jdk15on,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,bouncycastle,bcprov,jdk15on,中文API文档,手册,...
poi-***.jar中文文档.zip,java,poi-***.jar,org.apache.poi,poi,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,apache,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 【poi-***...
jna-***.jar中文文档.zip,java,jna-***.jar,net.java.dev.jna,jna,***,com.sun.jna,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 ...
中文-英文对照文档,中英对照文档,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 【***.jar中文文档.zip】,再解压其中的 【***-...
中文-英文对照文档,中英对照文档,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 【***.jar中文文档.zip】,再解压其中的 【***-...
jna-***.jar中文文档.zip,java,jna-***.jar,net.java.dev.jna,jna,***,com.sun.jna,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 ...
中文-英文对照文档,中英对照文档,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 【***.jar中文文档.zip】,再解压其中的 【***-...
bcprov-jdk15on-***.jar中文文档.zip,java,bcprov-jdk15on-***.jar,org.bouncycastle,bcprov-jdk15on,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,bouncycastle,bcprov,jdk15on,中文API文档,手册,...
中文-英文对照文档,中英对照文档,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 【***.jar中文文档.zip】,再解压其中的 【***-...
中文-英文对照文档,中英对照文档,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 【***.jar中文文档.zip】,再解压其中的 【***-...
中文-英文对照文档,中英对照文档,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 【***.jar中文文档.zip】,再解压其中的 【***-...
中文-英文对照文档,中英对照文档,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 【***.jar中文文档.zip】,再解压其中的 【***-...
中文-英文对照文档,中英对照文档,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 【***.jar中文文档.zip】,再解压其中的 【***-...
中文-英文对照文档,中英对照文档,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 【***.jar中文文档.zip】,再解压其中的 【***-...
jna-***.jar中文文档.zip,java,jna-***.jar,net.java.dev.jna,jna,***,com.sun.jna,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 ...