1

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

4

1 回答 1

1

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

于 2013-06-19T19:44:03.690 回答