我正在使用 Nexus OSS 2.5.0_04,我们正在使用 Jenkins 和 Maven 上传和构建我们所有的项目。我们能够上传和下载到 Nexus 没问题。
现在我正在尝试使用 Jenkins 来部署我们项目的最新快照版本。一点背景知识是我们有 4 个相互依赖的项目,在代码构建结束时,我们有一个要部署的 EAR 文件以及一个允许我们部署所有编译代码和命令行工具的 zip 文件。
一旦所有这些构建完成,我们的快照存储库中就会有一个拉链、一个罐子和一个耳朵。
我现在正在尝试使用 REST API 从 Nexus 下载最新的 ZIP 和 EAR 文件。我能够运行:
wget "http://<NEXUS_HOST>/nexus/service/local/artifact/maven/redirect?r=snapshots&g=<OUR GROUPID>&a=<ARTIFACT>&v=LATEST"
这工作正常,但下载一个 jar 文件。我试图指定我们想要 ZIP(和 EAR):
wget "http://<NEXUS_HOST>/nexus/service/local/artifact/maven/redirect?r=snapshots&g=<OUR GROUPID>&a=<ARTIFACT>&v=LATEST&p=zip" (also tried with ear. Also tried with the &e=zip...
每次这都会生成一个 404。回购中肯定有工件。我也尝试使用内容方法:
wget "http://<NEXUS_HOST>/nexus/service/local/artifact/maven/redirect?r=snapshots&g=<OUR GROUPID>&a=<ARTIFACT>&v=LATEST&p=zip" --content-disposition
都是404的。我们正在使用分类器为它们提供正确的内部版本号,但这似乎并未反映在 metadata.xml 文件中。当我运行 wget 时,我的路径很糟糕......
wget "http://<HOST>/nexus/service/local/artifact/maven/content?r=snapshots&g=<GROUPID>&a=<ARTIFACT>&v=LATEST&p=zip" --content-disposition
--2013-06-18 11:40:28-- http://<HOST>/nexus/service/local/artifact/maven/content?r=snapshots&g=<G>&a=<A>&v=LATEST&p=zip
Resolving <HOST>... 172.16.200.42
Connecting to <HOST>|172.16.200.42|:80... connected.
HTTP request sent, awaiting response... 404 Path /com/src/ecomm/ecomm/1.3-SNAPSHOT/ecomm-1.3-20130618.182910-114.zip not found in local storage of repository "Snapshots" [id=snapshots]
2013-06-18 11:40:28 ERROR 404: Path /com/src/ecomm/ecomm/1.3-SNAPSHOT/ecomm-1.3- 20130618.182910-114.zip not found in local storage of repository "Snapshots" [id=snapshots].
有没有办法可以将此分类器附加到请求中?似乎无法在文档中找到它。
IE,在这个例子中,我们想下载ecomm-1.3-20130618.171422-113-b705-deploy-package.zip,但Nexus想给我们ecomm-1.3-20130618.182910-114.zip(不存在)。
编辑:固定。弄清楚了。必须指定分类器和扩展名。我能够让它工作......
wget "http://<HOST>/nexus/service/local/artifact/maven/redirect?r=snapshots&g=<GROUPID>&a=ecomm&v=LATEST&c=b705-deploy-package&e=zip"
我真希望它从 metadata.xml 中提取分类器。我将不得不通过 lucene docs 看看我是否可以以某种方式搜索它。