【问题标题】:Deploy additional artefacts to Nexus 2 using Maven使用 Maven 将其他工件部署到 Nexus 2
【发布时间】:2018-04-07 11:55:00
【问题描述】:

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

例如发布版本部署到:

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

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

【问题讨论】:

  • 部署到补充存储库的目的是什么?除此之外,文件夹不能部署到存储库管理器,只有工件(jar、war、ear、zip、tar.gz 等)

标签: java maven nexus


【解决方案1】:

Maven 的工件坐标有五个组成部分(也称为 GAV(groupId、artifactId、version 的缩写)。这些工件坐标是:

  • 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 支持的工件坐标,因此不正确。

【讨论】:

    【解决方案2】:

    您对“文件夹”的看法有点误导。您使用 groupId、artifactId、版本、打包和分类器部署到 nexus。 Nexus 将其转换为文件夹结构,但您不能在 Nexus 中创建任意文件夹。

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

    【讨论】:

      猜你喜欢
      • 2016-10-19
      • 2012-05-19
      • 1970-01-01
      • 2013-03-06
      • 1970-01-01
      • 1970-01-01
      • 2012-02-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多