我想将依赖项中可用的所有文件添加到我的工件中,这样我就可以将该依赖项上传到另一个Nexus存储库。
我的依赖包含15个文件,存储在我的Nexus存储库中相同的GAV下:
myproject.jar
myproject.jar.md5
myproject.jar.sha1
myproject-sources.jar
myproject-sources.jar.md5
myproject-sources.jar.sha1
myproject.tgz
myproject.tgz.md5
myproject.tgz.sha1
myproject.pom
myproject.pom.md5
myproject.pom.sha1
maven-metadata.xml
maven-metadata.xml.md5
maven-metadata.xml.sha1
-sources.jar
文件具有<classifier>sources</classifier>
属性,tgz和pom文件具有<extension>
属性,其他文件没有任何特殊内容。
问题是我想尽可能地避免硬编码,只能将GAV参数传递给我的脚本,并且它可以自己处理任何GAV的所有获取和释放,无论哪个文件都是可用。
我现在正在处理的解决方案是直接查询Nexus repo以获取带有这样的URL的文件列表:
http://mynexushost:8081/nexus/service/local/repositories/snapshots/content/${group}/${artifact}/${version}/
它向我发送了一个JSON(接受标头设置为application/json
),其中包含我需要检索所有可用文件的URL和内容,下载它们并将它们添加到我的工件中,然后将其上传到我的目标库中。
我很确定这个解决方案是有效的,但它确实不是“Gradle方式”,因为它将我与Nexus绑定并且不使用内置的maven依赖解析实用程序。
如果不查询Nexus API,我怎么能解决这个问题?