gpt4 book ai didi

java - 如何创建仅包含项目依赖项而不包含项目类的 Jar 文件?

转载 作者:行者123 更新时间:2023-11-30 02:31:54 24 4
gpt4 key购买 nike

我有一个使用一些依赖项的 Java 项目,即 Commons、HttpClient、SQLite。

我想在 Gradle 中创建两个构建任务:

  1. 第一个允许我构建一个仅包含 Commons、HttpClient、Sqlite 的 Jar 文件,而无需我的项目,

  2. 第二个将允许我单独使用我的项目构建一个 Jar 文件。我猜这是默认的构建操作行为,所以我已经知道该怎么做了:)

我还知道如何将我的项目和依赖项放在一起创建 Jar 文件(“fat 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'
}

编辑:为问题添加更多上下文。

最佳答案

您可以直接删除

with jar

来自您的任务,它将项目 jar 文件的内容包含到 fat jar 中。请参阅the documentation .

关于java - 如何创建仅包含项目依赖项而不包含项目类的 Jar 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44093959/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com