在解析Maven存储库中的依赖关系时,Gradle必须下载相应的pom文件。我希望从Gradle-script中访问此文件并将其保存在某个位置。
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。
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'
2条答案
按热度按时间7tofc5zh1#
看看Artifact Query API,下面是示例代码(Groovy):
我在Kotlin的插件中使用了相同的API。
g52tjvyc2#
您可以简单地声明对POM本身的依赖关系。
如果你想要aar和jar依赖项,而不是pom本身,你可以使用上面的方法,除了在依赖项中省略@pom说明符,你也可以同时拥有这两个。