0

我正在使用谷歌云数据流来运行具有很多依赖项的 apache Beam 作业。通常,除非我 uberjar 整个项目,否则数据流将拒绝执行图表,因为依赖项列表太长。

有没有办法只将项目依赖项放在 uberjar 中,让我的其余数据流留在外面?我认为,由于依赖项是相当静态的,因此当我的项目中只有几个类发生更改时,我可以节省大量时间来重新加载和重新上传整个 uberjar。

4

1 回答 1

0

例如,您可以创建仅具有依赖项的特定Jar任务compile

task uberJarDependencies(type: Jar) {
    baseName "dependencies"
    from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
}

然后,gradle uberJarDependencies将产生以下 jar :build/libs/dependencies.jar

于 2018-09-06T09:55:49.830 回答