Nexus OSS api不会无法下载zip工件

时间:2013-06-18 18:46:14

标签: maven build jenkins repository nexus

我正在使用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文档来查看我是否可以以某种方式搜索它。

1 个答案:

答案 0 :(得分:1)

LATEST的使用在Maven中并不是很好用。您应该将其拆分以在一个请求中找到最新版本的工件,然后下载最新版本的特定版本。