有没有办法找到为gradle配置定义的直接依赖项

时间:2015-09-01 10:45:12

标签: gradle

我想提取特定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;它的工作原理

我正在寻找更好的解决方案,我无需复制配置。

1 个答案:

答案 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 ->
    // ...
}

请参阅:

相关问题