我编写了以下任务,它为我的每个子项目提取所有编译依赖项并将它们放在每个子项目目录中:
task exportCompileLibs << {
subprojects.each { iSubProject ->
iSubProject.configurations.findAll{it.name == "compile"}.each{ jConfig ->
println "copying compile libs for ${iSubProject.name}..."
copy {
into "${iSubProject.buildDir}/gradle-lib-export"
from jConfig
eachFile {println it.name}
}
}
}
}
我想扩展它以导出 Gradle 已经知道的源工件(我可以在缓存目录中看到源 jar),我只是不知道如何使用对象模型来处理他们。
IDEA 和 Eclipse 插件似乎能够做到这一点(他们将他们构建的项目文件直接指向 gradle 缓存),但我无法弄清楚如何做到这一点 - 并且查看 IDE 插件源代码,它看起来......棘手。我希望 gradle DSL 或 API 中缺少一些明显的东西。
有人有什么想法吗?