我是一名新的Gradle用户 . 我的任务是构建一个基于Gradle的项目,然后将最终的jar及其依赖项jar复制到远程主机 .
我的方法是进行本地构建,然后使用gradle任务将依赖项jar从缓存复制到本地目录,如下所示:
task copyDependencies(type: Copy) {
from configurations.runtime
into "build/libs/deps"
}
但是这个任务会复制所有依赖项,比如包括 transitive dependencies 到目标目录;此外,默认情况下,运行组包括编译依赖项 . 所以我想排除传递依赖,这需要大量的空间和编译时依赖关系jar . 有什么解决方案吗?
最后我计划通过ssh将生成的jar和依赖jars复制到远程主机,但我想应该有办法通过gradle任务直接完成这个
忠实地希望有人能给出一些有用的暗示
1 回答
你需要创建一个fatJar,你可以在这里找到一个如何做的例子:
Building a uberjar with Gradle
要复制到远程目录,可以在此处使用ant任务获取示例:How to copy directory via scp within gradle task?
或者您可以使用Exec任务,该任务将使用外部工具(例如scp):https://docs.gradle.org/current/dsl/org.gradle.api.tasks.Exec.html
希望这可以帮助