我有一个使用某些依赖项的Java项目,即Commons,HttpClient,SQLite。
我想在Gradle中创建两个构建任务:
第一个允许我用Commons,HttpClient,Sqlite构建一个Jar文件,没有我的项目,
第二个允许我单独使用我的项目构建一个Jar文件。这是我猜的默认构建操作行为,所以我已经知道如何做了:)
我也知道如何用我的项目和依赖项一起创建一个Jar文件("胖jar"),但是生成的Jar文件很大,我的所有依赖项组合在一起(~14mb)。 / p>
我的问题的原因是我在远程服务器上测试应用程序。我的想法是,我将上传带有依赖关系的'只有偶尔,每隔几天,依赖关系会发生变化,同时上传“应用程序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'
}
编辑:为问题添加了更多上下文。
答案 0 :(得分:2)
答案 1 :(得分:0)
我知道您的问题是关于Gradle的,但是对于那些想要在使用Maven进行此操作的同时找到此页面的人,可以使用以下针对maven-shade-plugin的配置来完成此操作:
<artifactSet>
<excludes>
<exclude>${project.groupId}:${project.artifactId}</exclude>
</excludes>
</artifactSet>