[英]Is it possible to create an “uber” jar containing the project classes and the project dependencies as jars with a custom manifest file?
[英]How to create a Jar file with only project dependencies, without project classes?
我有一个使用某些依赖项的Java项目,例如Commons,HttpClient,SQLite。
我想在Gradle中创建两个构建任务:
第一个允许我仅使用Commons,HttpClient和Sqlite构建Jar文件,而无需使用我的项目,
第二个将允许我仅使用我的项目来构建一个Jar文件。 我猜这是默认的构建操作行为,所以我已经知道该怎么做:)
我也知道如何将项目和依赖项一起创建一个Jar文件(“胖子jar”),但是所得的Jar文件很大,我所有的依赖项都组合在一起(〜14mb)。
我的问题的原因是我正在远程服务器上测试该应用程序。 我的想法是,每隔几天(依赖关系将发生变化),我只会偶尔上传一次“带有依赖项的jar”,而每隔几个版本就上传一次“应用程序jar”。 现在,我每次上传都等待几分钟,而我想等待几秒钟。
在Gradle中有可能吗?
这是我当前的gradle配置:
apply plugin: 'java'
buildscript {
repositories {
mavenCentral()
}
}
repositories {
mavenCentral()
}
task fatjar(type: Jar) {
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
baseName = project.name + "-all"
with jar
}
compileJava {
options.encoding = 'UTF-8'
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
dependencies {
compile group: 'commons-collections', name: 'commons-collections', version: '3.2.2'
compile 'org.hjson:hjson:1.0.0'
compile group: 'commons-cli', name: 'commons-cli', version: '1.3.1'
compile group: 'commons-io', name: 'commons-io', version: '2.4'
compile group: 'org.java-websocket', name: 'Java-WebSocket', version: '1.3.0'
compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.3'
compile group: 'org.apache.httpcomponents', name: 'httpcore', version: '4.4.6'
compile group: 'org.json', name: 'json', version: '20160810'
compile group: 'org.xerial', name: 'sqlite-jdbc', version: '3.16.1'
compile group: 'org.zeromq', name: 'jeromq', version: '0.4.0'
compile group: 'com.nimbusds', name: 'nimbus-jose-jwt', version: '4.23'
compile group: 'ws.wamp.jawampa', name: 'jawampa-core', version: '0.5.0'
compile group: 'ws.wamp.jawampa', name: 'jawampa-netty', version: '0.5.0'
}
编辑 :添加更多的上下文到问题。
我知道您的问题是关于Gradle的,但是对于希望在Maven中完成此页面的人,可以使用以下针对maven-shade-plugin的配置来完成此操作:
<artifactSet>
<excludes>
<exclude>${project.groupId}:${project.artifactId}</exclude>
</excludes>
</artifactSet>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.