作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在gradle任务中获取所有依赖项(包括传递性)的信息。
我尝试了代码:
class MyGradlePlugin implements Plugin<Project> {
void apply(Project project) {
project.afterEvaluate {
println " Project:" + project.name
project.configurations.each { conf ->
println " Configuration: ${conf.name}"
conf.allDependencies.each { dep ->
println " ${dep.group}:${dep.name}:${dep.version}"
}
}
}
}
}
dependencies
是:
dependencies {
compile "com.google.guava:guava:18.0"
compile 'org.codehaus.groovy:groovy-all:2.3.11'
testCompile 'junit:junit:4.11'
}
org.hamcrest:hamcrest-core:1.3
的传递依赖项
junit:junit:4.11
。
org.hamcrest:hamcrest-core:1.3
?
gradle dependencies
任务将显示我想要的所有内容,但是我需要手动获取依赖项信息并以我自己的格式打印它。
最佳答案
最后,我通过关注任务来解决
class Dep {
String group
String name
String version
String extention
String classifier
Dep(String group, String name, String version, String extension, String classifier) {
this.group = group
this.name = name
this.version = version
this.extention = extension
this.classifier = classifier
}
def deps = []
configurations.each {
conf ->
if (conf.isCanBeResolved()) {
conf.getResolvedConfiguration().getResolvedArtifacts().each {
at ->
def dep = at.getModuleVersion().getId()
println at.getFile().getAbsolutePath()
// dep = dep1.getComponentIdentifier()
println "$dep.group:$dep.name:$dep.version"
deps.add(new Dep(dep.group, dep.name, dep.version, at.extension, at.classifier))
}
}
}
def json = groovy.json.JsonOutput.toJson(deps)
json = groovy.json.JsonOutput.prettyPrint(json)
new File("deps.json") << json
关于plugins - 如何在gradle任务中获取传递依赖项的信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30287826/
我是一名优秀的程序员,十分优秀!