我正在寻找一种方法来将某个配置的项目依赖项提取到工作区文件夹中。由于可能存在多个依赖项,因此我希望将每个工件提取到具有工件名称的文件夹中。我试图在python的上下文中解决这个问题,但这个问题与python无关......
目前我的gradle文件如下所示:
configurations { python }
dependencies {
python group: 'github.dpeger', name: 'py-utils', version: '1.6', ext: 'zip'
python group: 'github.dpeger', name: 'py-test', version: '1.6', ext: 'zip'
}
task cleanPythonDependencies(type: Delete) { delete 'lib/python' }
tasks.clean.dependsOn cleanPythonDependencies
task importPythonDependencies(type: Copy) {
dependsOn cleanPythonDependencies
from {
configurations.python.collect { zipTree(it) }
}
into 'lib/python'
}
然而,这会将python
配置中的所有依赖项提取到文件夹lib\pyhton
中,而不使用工件'名。
我想要的是py-utils
被提取到lib\pyhton\py-utils
和py-test
到lib\pyhton\py-test
。
答案 0 :(得分:3)
假设您希望将py-utils提取到lib \ pyhton \ py-utils并将py-test提取到lib \ pyhton \ py-test ,这应该可以完成这项任务:
task importPythonDependencies() {
dependsOn cleanPythonDependencies
String collectDir = 'lib/python'
outputs.dir collectDir
doLast {
configurations.python.resolvedConfiguration.resolvedArtifacts.each { artifact ->
copy {
from zipTree( artifact.getFile() )
into collectDir + '/' + artifact.name
}
}
}
}