我正在使用谷歌云数据流来运行具有大量依赖关系的apache beam作业。通常,除非我对整个项目进行调整,否则数据流将拒绝执行图形,因为依赖项列表太长。
有没有办法只将项目依赖项放在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