如何将单个文件添加到 Sonatype Nexus 中的现有快照时间戳版本
How to add a single file to an existing snapshot timestamp version in Sonatype Nexus
我正在为 Jenkins 开发一个 CI/CD 管道,它被各种项目使用。所有项目都使用 Maven 并将其快照和发布版本部署到给定的工件存储库。
在管道中,我还创建了一个文件并使用相同的快照版本通过 mvn deploy:deploy-file
部署它,例如1.2.3-快照,到使用的存储库。因此,项目的实际部署之前已经完成,创建了一个新的带时间戳的快照版本。
在使用的存储库中,它看起来像这样:
─┬─ my-artifact
│ ├─ 1.2.3-SNAPSHOT
│ ├─ 1.2.3-SNAPSHOT-20201215.123453-1
│ │ └ ...
│ ├─ 1.2.3-SNAPSHOT-20201215.123463-2
│ │ ├─ my-artifact-1.2.3-SNAPSHOT-20201215.123463-2.jar
│ │ ├─ my-artifact-1.2.3-SNAPSHOT-20201215.123463-2.jar.md5
│ │ ├─ my-artifact-1.2.3-SNAPSHOT-20201215.123463-2.jar.sha1
│ │ ├─ my-artifact-1.2.3-SNAPSHOT-20201215.123463-2.pom
│ │ ├─ my-artifact-1.2.3-SNAPSHOT-20201215.123463-2.pom.md5
│ │ └─ my-artifact-1.2.3-SNAPSHOT-20201215.123463-2.pom.sha1
│ └── 1.2.3-SNAPSHOT-20201215.123473-3
│ ├─ my-artifact-1.2.3-SNAPSHOT-20201215.123473-3-cyclonedx.xml
│ ├─ my-artifact-1.2.3-SNAPSHOT-20201215.123473-3-cyclonedx.xml.md5
│ └─ my-artifact-1.2.3-SNAPSHOT-20201215.123473-3-cyclonedx.xml.sha1
如您所见,由我的管道代码上传的快照版本1.2.3-SNAPSHOT-20201215.123473-3
与之前的版本内容完全不同。任何请求最新快照版本的 Maven 项目都将无法找到 jar 文件,因为最新快照仅包含 XML 文档。
有没有办法部署,或者更确切地说,将工件附加到现有的时间戳快照版本?恐怕不是,但我想在选择完全不同的方法之前验证我的想法。
在管道内我可以做任何事情,除了修改 Maven 项目的 POM。更改 Maven 项目是不可能的,因为它们中有很多,我必须实现的功能来自不同的利益相关者。
khmarbaise 是对的。
您需要更改 POM。
如果文件应该是 SNAPSHOT 的一部分,它必须是 Maven 构建的一部分。
如果与构建无关,你最好把它放在其他地方。
我正在为 Jenkins 开发一个 CI/CD 管道,它被各种项目使用。所有项目都使用 Maven 并将其快照和发布版本部署到给定的工件存储库。
在管道中,我还创建了一个文件并使用相同的快照版本通过 mvn deploy:deploy-file
部署它,例如1.2.3-快照,到使用的存储库。因此,项目的实际部署之前已经完成,创建了一个新的带时间戳的快照版本。
在使用的存储库中,它看起来像这样:
─┬─ my-artifact
│ ├─ 1.2.3-SNAPSHOT
│ ├─ 1.2.3-SNAPSHOT-20201215.123453-1
│ │ └ ...
│ ├─ 1.2.3-SNAPSHOT-20201215.123463-2
│ │ ├─ my-artifact-1.2.3-SNAPSHOT-20201215.123463-2.jar
│ │ ├─ my-artifact-1.2.3-SNAPSHOT-20201215.123463-2.jar.md5
│ │ ├─ my-artifact-1.2.3-SNAPSHOT-20201215.123463-2.jar.sha1
│ │ ├─ my-artifact-1.2.3-SNAPSHOT-20201215.123463-2.pom
│ │ ├─ my-artifact-1.2.3-SNAPSHOT-20201215.123463-2.pom.md5
│ │ └─ my-artifact-1.2.3-SNAPSHOT-20201215.123463-2.pom.sha1
│ └── 1.2.3-SNAPSHOT-20201215.123473-3
│ ├─ my-artifact-1.2.3-SNAPSHOT-20201215.123473-3-cyclonedx.xml
│ ├─ my-artifact-1.2.3-SNAPSHOT-20201215.123473-3-cyclonedx.xml.md5
│ └─ my-artifact-1.2.3-SNAPSHOT-20201215.123473-3-cyclonedx.xml.sha1
如您所见,由我的管道代码上传的快照版本1.2.3-SNAPSHOT-20201215.123473-3
与之前的版本内容完全不同。任何请求最新快照版本的 Maven 项目都将无法找到 jar 文件,因为最新快照仅包含 XML 文档。
有没有办法部署,或者更确切地说,将工件附加到现有的时间戳快照版本?恐怕不是,但我想在选择完全不同的方法之前验证我的想法。
在管道内我可以做任何事情,除了修改 Maven 项目的 POM。更改 Maven 项目是不可能的,因为它们中有很多,我必须实现的功能来自不同的利益相关者。
khmarbaise 是对的。
您需要更改 POM。
如果文件应该是 SNAPSHOT 的一部分,它必须是 Maven 构建的一部分。
如果与构建无关,你最好把它放在其他地方。