1

我正在尝试实现一个持续部署系统,但我似乎无法为我们的问题找到一个好的答案。我们使用 Jenkins 运行 maven 构建来生成我们的工件并将它们部署到 Nexus。我看到一些项目将所有内容捆绑到单个 war 或 tar 文件中,按名称从 Nexus 中提取每个请求的一个文件并将其部署到应用程序服务器,但这需要他们事先知道他们有哪些版本可用。我的项目有很多 jars/wars/binaries 以及其他工件,它们没有使用应用程序服务器进行部署。我们想要做的是能够从nexus 中提取软件的任何快照或发布版本,并生成安装包或将其直接传送到远程服务器。

澄清:我希望 QA 或开发能够从 Jenkins 中选择一个版本;Jenkins 将在其中轮询 Nexus 以获取可用版本,然后从 Nexus 自动部署到服务器。

是否有一种简单的联系/行家方式将软件输出到测试系统?

那么,有没有办法通过 ant/ivy、Jenkins、maven、gradle 轮询 nexus 以确定哪些修订可用?如果有帮助我会写点别的。

我看到这里问了一个类似的问题:How do I choose an artifact from Nexus in a Hudson / Jenkins job? ,但 9 个月后仍未得到答复。

4

1 回答 1

0

Nexus 为您提供标准的 HTTP 浏览功能。您可以通过 HTTP 浏览存储库并查看可用的内容。

我仍然不明白你的用例。如果你知道你想要哪个版本的项目,那么问题是什么?

最简单的方法是编写一个安装程序 pom.xml,其中包含一个 ${} 占位符,用于表示您想要的工件版本,然后调用 mvnmvn package -Dproduct.version=1.0.0

如果您使用容器,PAX 的插件允许您访问特定的工件,例如 mvn:myGroup/myArtifact/myVersion,它会自动从 Maven 中提取。

Nexus 没有做任何魔术。这是组/artifactId/versions 的 URL 上的所有众所周知的路径

于 2012-07-11T21:46:43.577 回答