我想提取特定gradle配置中定义的依赖项;我的代码就像:
project.configurations.myConfig.files.each { src ->
logger.debug "Extracting ${src.absolutePath} to ${to}"
project.copy {
eachFile { fileCopyDetails ->
logger.debug("Extracting file : ${fileCopyDetails.file.path}")
}
from project.zipTree(src)
into to
}
但这是提取所有文件,包括pom文件中定义的依赖项。我的要求是只提取dependencies{ myConfig ... }
解决方案1
我尝试设置transitive = false
并且它有效,但是因为我们正在从类路径中删除依赖库,所以它会破坏构建。
解决方案2
尝试创建一个新配置,该配置是myConfig
的副本,但设置为transitive = false
;它的工作原理
我正在寻找更好的解决方案,我无需复制配置。
答案 0 :(得分:0)
您可以复制配置,然后将副本设置为不可传递。这样,您只需指定一次依赖项:
// This will include dependencies from superconfigurations. If that is not
// what you want, use "copy()" instead.
def nonTransitiveMyConfig = configurations.myConfig.copyRecursive()
nonTransitiveMyConfig.transitive = false
nonTransitiveMyConfig.files.each { src ->
// ...
}
请参阅: