我怎样才能使用Sonatype REST Api来获取具有最高版本(最新时间构建)的构建?
http://MY_REPOSITORY/nexus/service/local/lucene/search?a=ARTIFACT_NAME&v=ARTIFACT_VERSION
Run Code Online (Sandbox Code Playgroud)
将构建版本作为ARTIFACT_VERSION工作传递.传递v=LATEST或v=latest不返回最新版本.
我正在尝试从我当地的Nexus仓库下载最新/最新资产(JAR).我正在使用Nexus Swagger UI.它有一个GET方法下载,
GET /beta/search/assets/download
Run Code Online (Sandbox Code Playgroud)
问题是..我在repo中有很多资产,它给出了一个错误,
Search returned multiple assets, please refine search criteria to find a single asset
Run Code Online (Sandbox Code Playgroud)
如何优化搜索并获取最新/最新的JAR?
仅供参考.目前,我在回购中拥有20多个资产,下面我展示其中两个...
{
"items": [
{
"downloadUrl": "http://localhost:8081/repository/snapshot/com/openshift/test/openshift-jenkins/0.0.1-SNAPSHOT/openshift-jenkins-0.0.1-20180214.211251-17.jar",
"path": "com/openshift/test/openshift-jenkins/0.0.1-SNAPSHOT/openshift-jenkins-0.0.1-20180214.211251-17.jar",
"id": "c25hcHNob3Q6ZTAxODhlZDA3MjhmYTY4ZmIwOGZkYzAyYTliZTQ4Zjg",
"repository": "snapshot",
"format": "maven2",
"checksum": {
"sha1": "53cdfcf964d0edd5fc6fdefa457e700eff47a1ca",
"md5": "d0c82971b82957728d0b4c858150d56c"
}
},
{
"downloadUrl": "http://localhost:8081/repository/snapshot/com/openshift/test/openshift-jenkins/0.0.1-SNAPSHOT/openshift-jenkins-0.0.1-20180214.210246-15.jar",
"path": "com/openshift/test/openshift-jenkins/0.0.1-SNAPSHOT/openshift-jenkins-0.0.1-20180214.210246-15.jar",
"id": "c25hcHNob3Q6MjEwMzFkZmFmNDVlNWI1ODgwZTUwYjE5M2Y5NGVkNjk",
"repository": "snapshot",
"format": "maven2",
"checksum": {
"sha1": "b041f4b1e6bcb81366a72635f6c576ae46a83ec8",
"md5": "af970e3e66c9cd20ff66f1074da04c21"
}
}
],
"continuationToken": null
}
Run Code Online (Sandbox Code Playgroud) 我们刚刚将nexus安装升级到最新版本(3.x).有没有办法获得给定快照工件的最新版本?Nexus 2有一个不错的API,不再支持.
同样的问题(但对于旧版本)已在这里得到解答: Sonatype Nexus REST Api获取最新的构建版本
任何想法都受到高度赞赏.
最好,丹尼尔
我正在编写一个应用程序,要求我下载一个给定mavens groupid/artifactid/version的jar.
我目前开始
public Model pomToModel(String pomUrl) throws Exception {
URL url = new URL(pomUrl);
InputStream stream = url.openStream();
try {
Model model = new MavenXpp3Reader().read(stream);
return model;
} finally {
stream.close();
}
}
Run Code Online (Sandbox Code Playgroud)
所以给定POM的url,我现在有maven Model对象来表示它.这似乎运作良好.
我想知道的是两件事:
我已经有质量差的解决方案:我去mvnrepository.com手动编码url,我使用〜/ .m2/repository作为文件的前缀.我显然可以改进这个解决方案,但是我最终会很难复制经过充分测试并在maven代码库中使用的代码.
我真的很想知道如何使用maven类来做到这一点.
我已经做了相当多的谷歌搜索,但搜索maven和jar(甚至在stackoverflow)上的任何有趣的事情是我找到了很多关于如何使用maven的解决方案,而不是如何使用maven类进行编码.
谢谢您的帮助
我知道Nexus支持REST请求。您能告诉我如何根据Nexus请求存储库中特定工件的大小吗?
谢谢。