我正在使用Google Cloud Dataflow来运行具有很多依赖关系的Apache Beam作业。通常,除非我对整个项目进行 super 打包,否则数据流将拒绝执行该图,因为依赖项列表过长。
有没有一种方法只能将项目依赖项放在uberjar中,而让其余数据流保留在外部?我认为,由于依赖项是相当静态的,因此当我的项目中只有几个类发生更改时,我可以节省大量时间来重新添加和重新加载整个uberjar。
最佳答案
您可以仅使用Jar
依赖项来创建特定的compile
任务
task uberJarDependencies(type: Jar) {
baseName "dependencies"
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
}
然后,
gradle uberJarDependencies
将产生以下jar:build/libs/dependencies.jar
关于java - Uberjar仅具有依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52195711/