Joh*_*ide 9 nexus gradle maven
我想将依赖项中可用的所有文件添加到我的工件中,以便将该依赖项上载到另一个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
Run Code Online (Sandbox Code Playgroud)
该-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的情况下解决这个问题?
我创建了一个名为 Maven Repository Provisioner 的工具,它几乎可以完成此任务。您可以在https://github.com/simpligility/maven-repository-tools上查看
它在生产中用于您想要的目的,但它还计算并提供所有传递依赖项和所需的父 pom。检查一下,如果它没有完全满足您的要求...我接受拉取请求;-)
| 归档时间: |
|
| 查看次数: |
1094 次 |
| 最近记录: |