使用Maven将其他人工制品部署到Nexus 2

时间:2017-10-26 07:46:38

标签: java maven nexus

我有一个使用Maven构建并部署到Nexus 2的Java项目。

E.g。发布版本部署到:

axis

快照构建部署到:

repositories/releases/com/my-company/a/b/c/1.1.0
repositories/releases/com/my-company/a/b/c/1.2.0

在部署阶段,我想将一些额外的人工制品部署到Nexus以下的存储库,该文件夹取决于构建版本是发布还是快照。

repositories/snapshots/com/my-company/a/b/c/1.1.0-SNAPSHOT
repositories/snapshots/com/my-company/a/b/c/1.2.0-SNAPSHOT

从阅读这个主题看起来我可以使用部署插件来实现这一点,但我不确定如何。

2 个答案:

答案 0 :(得分:1)

Maven有5个组件的人工坐标(a.k.a. GAV(groupId的缩写,artifactIdversion)。这些神器坐标是:

  • groupId
  • artifactId
  • version
  • type
  • classifier

基于这些坐标,Maven为您构建路径。

例如:

  • groupIdcom.foo
  • artifactIdbar
  • version1.0
  • typejar
  • classifierjdk12

它将生成如下路径:

com/foo/bar/1.0/bar-1.0-jdk12.jar

如果没有classifier,它将只创建:

com/foo/bar/1.0/bar-1.0.jar

您尝试做的事情不适合Maven支持的工件坐标,因此不正确。

答案 1 :(得分:0)

你在"文件夹中的想法"有点误导。使用groupId,artifactId,version,packaging和classifier部署到nexus。 Nexus将其转换为文件夹结构,但您无法在Nexus中创建任意文件夹。

如果要部署其他工件,可以使用deploy:deploy-file目标,但必须为它们提供Maven坐标(groupId,artifactId,...)而不是文件夹。