获取Gradle中依赖关系的pom

bvuwiixz  于 2023-03-08  发布在  其他
关注(0)|答案(2)|浏览(263)

在解析Maven存储库中的依赖关系时,Gradle必须下载相应的pom文件。我希望从Gradle-script中访问此文件并将其保存在某个位置。

7tofc5zh

7tofc5zh1#

看看Artifact Query API,下面是示例代码(Groovy):

def componentIds = configurations.compileClasspath.incoming.resolutionResult.allDependencies.collect { it.selected.id }
def result = project.dependencies.createArtifactResolutionQuery()
        .forComponents(componentIds)
        .withArtifacts(MavenModule, MavenPomArtifact)
        .execute()
for (component in result.resolvedComponents) {
    component.getArtifacts(MavenPomArtifact).each { println "POM file for ${component.id}: ${it.file}" }
}

我在Kotlin的插件中使用了相同的API。

g52tjvyc

g52tjvyc2#

您可以简单地声明对POM本身的依赖关系。

configurations {
    pom
}

dependencies {
    pom 'org.foo:some-lib:1.0.0@pom'
}

task copyPom(type: Copy) {
    into "${buildDir}/poms"
    from configurations.pom
}

如果你想要aar和jar依赖项,而不是pom本身,你可以使用上面的方法,除了在依赖项中省略@pom说明符,你也可以同时拥有这两个。

pom 'org.foo:some-lib:1.0.0'

相关问题