OSS Nexus:如何使用RESTAPI以文本形式检索最新版本
我想检索最新版本名(作为文本),以便能够重命名从Nexus检索到的具有时间戳的工件 我所做的是创建一个包含内部jar项目、依赖项、相关脚本等的多个归档文件的归档文件。。。但是,如果打包的jar是快照,那么归档文件在下载时会带有时间戳。这些时间戳替换了存档的X.X.X-SNAPSHOT扩展,我无法生成任何自动脚本来执行一些任务,如提取存档、重命名目录、创建一些符号链接等等 我在RESTAPI文档中没有找到任何与此相关的内容。有没有一种简单的方法可以通过RESTAPI或某种脚本实现这一点 谢谢 编辑: 从下面的答案中,我设法使用latest而不是版本名检索最新的快照版本: 然后使用脚本,我可以检索基本版本OSS Nexus:如何使用RESTAPI以文本形式检索最新版本,rest,timestamp,nexus,Rest,Timestamp,Nexus,我想检索最新版本名(作为文本),以便能够重命名从Nexus检索到的具有时间戳的工件 我所做的是创建一个包含内部jar项目、依赖项、相关脚本等的多个归档文件的归档文件。。。但是,如果打包的jar是快照,那么归档文件在下载时会带有时间戳。这些时间戳替换了存档的X.X.X-SNAPSHOT扩展,我无法生成任何自动脚本来执行一些任务,如提取存档、重命名目录、创建一些符号链接等等 我在RESTAPI文档中没有找到任何与此相关的内容。有没有一种简单的方法可以通过RESTAPI或某种脚本实现这一点 谢谢 编辑
#!/bin/bash
VERSION=`curl --silent "http://redmine.saic.int:8081/nexus/service/local/artifact/maven/resolve?r=snapshots&g=com.g2mobility&a=G2-Modem-Mgr&v=LATEST&c=executable&e=tar.gz" | sed -n 's|<baseVersion>\(.*\)</baseVersion>|\1|p'`
VERSION=`echo "$VERSION" | tr -d ' '`
echo "Version is $VERSION"
#/bin/bash
VERSION=`curl--silent“http://redmine.saic.int:8081/nexus/service/local/artifact/maven/resolve?r=snapshots&g=com.g2mobility&a=G2-调制解调器管理器&v=LATEST&c=executable&e=tar.gz“| sed-n的| \(.*)\1 | p”`
版本=`echo“$VERSION”| tr-d“”`
echo“版本为$Version”
谢谢 这是一篇早期删除的帖子,提出了一种从Maven存储库内容组装发行版的替代方法: 是一种替代依赖关系管理客户端,可从以下位置运行:
java -jar ivy.jar -settings ivysettings.xml -dependency org.cometd.jetty cometd-jetty-client 1.0-SNAPSHOT -retrieve "distrib/[artifact]-[revision](-[classifier]).[ext]"
ivy命令的“检索”选项详细说明了下载的文件应如何在本地存储:
-- distrib
|-- cometd-api-1.0-SNAPSHOT.jar
|-- cometd-jetty-client-1.0-SNAPSHOT.jar
|-- cometd-jetty-client-1.0-SNAPSHOT-javadoc.jar
|-- cometd-jetty-client-1.0-SNAPSHOT-sources.jar
|-- cometd-jetty-server-1.0-SNAPSHOT.jar
|-- jetty-6.1.15.jar
|-- jetty-client-6.1.15.jar
|-- jetty-sslengine-6.1.15.jar
|-- jetty-util5-6.1.15.jar
|-- jetty-util-6.1.15.jar
`-- servlet-api-2.5-20081211.jar
检索到了正确的时间戳工件,但保留了“快照”修订号,我知道您正试图这样做
ivysettings文件详细说明了下载工件时要使用的存储库:
<ivysettings>
<settings defaultResolver="repos"/>
<resolvers>
<chain name="repos">
<ibiblio name="central" m2compatible="true"/>
<ibiblio name="cometd-snapshot" root="https://oss.sonatype.org/content/repositories/cometd-snapshots/" m2compatible="true"/>
</chain>
</resolvers>
</ivysettings>
Nexus具有以下REST API,用于描述如何解析Maven模块:
<groupId>org.cometd.jetty</groupId>
<artifactId>cometd-jetty-client</artifactId>
<version>1.0-SNAPSHOT</version>
org.cometd.jetty
返回以下报告:
<artifact-resolution>
<data>
<presentLocally>true</presentLocally>
<groupId>org.cometd.jetty</groupId>
<artifactId>cometd-jetty-client</artifactId>
<version>1.0-20090313.100344-2</version>
<baseVersion>1.0-SNAPSHOT</baseVersion>
<extension>jar</extension>
<snapshot>true</snapshot>
<snapshotBuildNumber>2</snapshotBuildNumber>
<snapshotTimeStamp>1236938624000</snapshotTimeStamp>
<sha1>0cbf7163f19bf4586e27632a1f742dd0c0e0036d</sha1>
<repositoryPath>/org/cometd/jetty/cometd-jetty-client/1.0-SNAPSHOT/cometd-jetty-client-1.0-20090313.100344-2.jar</repositoryPath>
</data>
</artifact-resolution>
真的
org.cometd.jetty
cometd jetty客户端
1.0-20090313.100344-2
1.0-快照
罐子
真的
2.
1236938624000
0cbf7163f19bf4586e27632a1f742dd0c0e0036d
/org/cometd/jetty/cometd-jetty-client/1.0-SNAPSHOT/cometd-jetty-client-1.0-20090313.100344-2.jar
可以在这里找到Maven Resolve Nexus REST API的文档:这正是我想要做的,但是我们正在使用Maven,不想移动到另一个依赖项管理器。嗨,没有Nexus插件可以做到吗?非常感谢。