gpt4 book ai didi

gradle - 如何从依赖列表中的项目中收集带有源的jar?

转载 作者:行者123 更新时间:2023-12-03 05:17:42 24 4
gpt4 key购买 nike

我有一个简单的多项目构建:

root
|___ a
|___ b
|___ c

根项目中的 build.gradle:
subprojects {
task jarSources(type: Jar, dependsOn: classes) {
classifier = 'source'
from sourceSets.main.java, sourceSets.main.resources
}
}

项目 build.gradle中的 a:
dependencies {
compile project(':b')
compile project(':c')
}

task archiveDependencySources(type: Zip) {
...
}

任务 archiveDependencySources旨在从项目 a所依赖的项目中收集所有带有源的jar。有标准的方法可以完成这项工作吗?

到目前为止,我发现了看起来有点难看的解决方案:
def allJarSourcesTasks = []
for (def dep : configurations.compile.dependencies)
if (dep.hasProperty('dependencyProject'))
allJarSourcesTasks << dep.dependencyProject.tasks['jarSources']

archiveDependencySources.dependsOn allJarSourcesTasks
archiveDependencySources.from allJarSourcesTasks

最佳答案

这可能有效(不确定null参数):

allJarSourcesTasks = configurations.compile.getTaskDependencyFromProjectDependency(true, "jarSources").getDependencies(null)

对于 dependsOn,可以省略 .getDependencies(null),但我相信 from需要它。

关于gradle - 如何从依赖列表中的项目中收集带有源的jar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21612144/

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