在 Nexus 中更改存储库布局

Changing repository layout in Nexus

我正在将使用 Maven 构建的 Maven 工件部署到 Nexus,并在 Jenkins 中使用以下 Maven 命令进行 Nexus 部署。

org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy-file

file=abc.ear
groupId=myGroup
artifactId=ModuleA
version=1.0
url=${NEXUS_URL}/dev-repository
repositoryId=dev-repository

我正在部署多个模块,并为三个模块调用上述命令三次。 Nexus 中生成的 repo 结构如下所示 -

myGroup
|
-ModuleA
 |
 -1.0
  |
  -abc.ear
-ModuleB
 |
 -1.0
  |
  -abc.ear
-ModuleC
 |
 -1.0
  |
  -abc.ear

到目前为止,还不错。但是,我更希望有一个类似于 -

的结构
myGroup
|
-1.0
 |
 -ModuleA
  -abc.ear
 -ModuleB
  -abc.ear
 -ModuleC
  -abc.ear

我怎样才能做到这一点?我看到引用 'repositoryLayout' 的 maven-deploy-plugin 的文档。我怎么可能用它来获得这个特定的文件夹结构?

就我对 maven 的了解而言,它是一个标准布局,您无法使用开箱即用的标准 maven 插件对其进行自定义。

Maven 使用 maven2 切换到 'default' 存储库布局,而 Maven 过去使用旧版本在 'legacy' 布局中部署工件。这两个是唯一支持开箱即用的布局

maven-deploy-plugin legacy layout

Details about difference in legacy and default layout

所以你不能使用标准的 maven 插件来实现你想要的。话虽如此,理论上你应该能够通过实现 ArtifactRepositoryLayout 接口来实现。我找到了一些关于这个 link 的信息:https://kthoms.wordpress.com/2009/10/13/how-to-register-a-custom-maven-repository-layout/