如何从gradle依赖项检索工件文件和工件元数据?
我想写一个gradle构建任务来执行一些工件的repo复制和reorg。我走了这么远:如何从gradle依赖项检索工件文件和工件元数据?,gradle,Gradle,我想写一个gradle构建任务来执行一些工件的repo复制和reorg。我走了这么远: apply plugin: 'maven' apply plugin: 'maven-publish' repositories { ... } configurations { ... } dependencies { ... } task doit << { configurations.each { configuration -> println co
apply plugin: 'maven'
apply plugin: 'maven-publish'
repositories {
...
}
configurations {
...
}
dependencies {
...
}
task doit << {
configurations.each { configuration ->
println configuration
configuration.files.each { file ->
println " f=${file.path}"
}
configuration.dependencies.each { dependency ->
println " g=${dependency.group}"
println " i=${dependency.name}"
println " v=${dependency.version}"
dependency.artifacts.each { artifact ->
println " x=${artifact.classifier}"
println " n=${artifact.name}"
println " u=${artifact.url}"
}
}
}
}
apply插件:“maven”
应用插件:“maven发布”
存储库{
...
}
配置{
...
}
依赖关系{
...
}
任务doit
println配置
configuration.files.each{file->
println“f=${file.path}”
}
configuration.dependency.each{dependency->
println“g=${dependency.group}”
println“i=${dependency.name}”
println“v=${dependency.version}”
dependency.artifact.each{artifact->
println“x=${artifact.classifier}”
println“n=${artifact.name}”
println“u=${artifact.url}”
}
}
}
}
我无法在dependency.artifacts.each()循环中获得对下载文件的引用
我能做的最好的事情就是通过查看configuration.files来填充数组,然后希望我在工件元数据上的第二组循环与文件的顺序相同。我显然错过了什么
也许有别的办法?我真正想要的是生成一组任务,每个工件一个,这将允许我发布一个带有更改元数据项(即组id、工件id和版本应该更改)的新工件。您希望迭代解决的依赖项/工件,而不是请求的依赖项/工件。比如:
configuration.resolvedConfiguration.resolvedArtifacts.each { artifact ->
println artifact.moduleVersion.id.group
println artifact.moduleVersion.id.name
println artifact.moduleVersion.id.version
println artifact.file
}
看起来不太像那样,但我认为这指向了正确的方向。。。我将用一个调试器指出这一点,并进一步检查。我忘记引用工件(已修复)。了解API的一个好方法是查看,它进一步链接到Javadoc/Groovydoc.Ok,谢谢!那一个有效。如果您已经对整个结构感到满意,那么参考是好的。我还在试着去感受它。