我整晚都在忙碌着,我非常接近完成这项工作。我太激动了。我只有一个主要障碍和一个问题。
首先,问题。我想出了如何使用配置对象通过依赖项解析引擎来控制pom文件, Artifact 和jars的下载。但是我注意到了一个差异。对于使用im测试的类,当我启动依赖关系解析器时,它将下载39个pom文件。但是,当我查看配置对象下的 Artifact 对象时,它仅列出了25个对象。当我将类路径转储到文件夹时,我得到25个库,但是当我做项目报告时,它列出了32个库。这些计数差异是否正常? gradle下载pom文件并意识到它不需要 Artifact 是正常的吗?
现在我的问题是,我有了这个东西,可以在类路径中给我jar文件的完整路径
def artifacts = configurations.compile.resolvedConfiguration.resolvedArtifacts as List
现在的问题是,我还需要POM,源代码和javadoc jar的完整路径,因此我可以将它们转过来并将它们安装到内部 Artifact 服务器中。
我如何获得这些路径?
最佳答案
如果在分类器上添加依赖项,则只能获取源代码和javadoc jar的路径。例如:
dependencies {
testCompile 'junit:junit:4.12:
testCompile 'junit:junit:4.12:sources'
testCompile 'junit:junit:4.12:javadoc'
}
configurations.testCompile.each {
println it
}
据我所知,目前尚无办法通过Gradle获取pom.xml的路径。但是,一旦有了通往主jar的路径,搜索相应的pom.xml便不会成为问题。
在此示例中,pom.xml将位于
$GRADLE_HOME/caches/modules-2/files-2.1/junit/junit/4.12/<some-hash>/junit-4.12.pom