使用 Maven 将其他工件部署到 Nexus 2

Deploy additional artefacts to Nexus 2 using Maven

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

例如发布版本部署到:

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

快照构建部署到:

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

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

repositories/test/com/my-company/a/b/c/1.1.0/some-folder
repositories/test/com/my-company/a/b/c/1.1.0-SNAPSHOT/some-folder

通过阅读有关此主题的内容,我似乎可以使用部署插件来实现此目的,但我不确定如何实现。

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

如果你想部署额外的工件,这可以使用 deploy:deploy-file 目标,但你必须给它们 Maven 坐标(groupId,artifactId,...)而不是文件夹。

Maven 的工件坐标有五个组成部分 (a.k.a。GAV(groupIdartifactIdversion 的缩写)。这些工件坐标是:

  • groupId
  • artifactId
  • version
  • type
  • classifier

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

例如:

  • groupId : com.foo
  • artifactId : bar
  • version : 1.0
  • type : jar
  • classifier: jdk12

它将产生如下路径:

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

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

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

您尝试执行的操作不适合 Maven 支持的工件坐标,因此不正确。