maven - Gradle 构建解析 Maven2 快照的方式与 Maven 构建不同
问题描述
我正在使用 Nexus OSS 3.x,并且我有一个自定义库,我正在使用 nexus-staging-maven-plugin 部署到我的 Nexus 存储库。我使用 Maven 部署目标部署快照。然后,我可以将该快照作为依赖项包含在另一个 Maven 项目的 pom.xml 中,并且正确的时间戳快照会得到适当的解析。问题是当我现在尝试在 Gradle 构建中包含该快照依赖项时,Gradle 正在尝试拉下不正确的版本。我注意到在创建的 maven-metadata.xml 中,Gradle 实际上正在尝试解析 my-lib-2.0.0-20200225.163947-14.jar,而我的 Maven 构建正确解析为 my-lib-2.0.0-20200225.163945- 13.jar。这是 maven-metadata.xml 文件中的内容:
<metadata modelVersion="1.1.0">
<groupId>com.mycompany</groupId>
<artifactId>my-lib</artifactId>
<version>2.0.0-SNAPSHOT</version>
<versioning>
<snapshot>
<timestamp>20200225.163947</timestamp>
<buildNumber>14</buildNumber>
</snapshot>
<lastUpdated>20200225163947</lastUpdated>
<snapshotVersions>
<snapshotVersion>
<classifier>sources</classifier>
<extension>jar</extension>
<value>2.0.0-20200225.163945-13</value>
<updated>20200225163947</updated>
</snapshotVersion>
<snapshotVersion>
<extension>jar</extension>
<value>2.0.0-20200225.163945-13</value>
<updated>20200225163947</updated>
</snapshotVersion>
<snapshotVersion>
<extension>pom</extension>
<value>2.0.0-20200225.163945-13</value>
<updated>20200225163947</updated>
</snapshotVersion>
</snapshotVersions>
</versioning>
</metadata>
解决方案
我弄清楚了问题所在。事实证明,我使用的 nexus-staging-maven-plugin 导致了这种情况。我从我的 pom.xml 中删除了插件(如下所示)并默认为标准 maven-deploy-plugin 并解决了版本差异(也如下所示)
这是我使用的插件。删除它解决了我的问题。
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>${nexus-staging-plugin.version}</version>
<executions>
<execution>
<id>default-deploy</id>
<phase>deploy</phase>
<goals>
<goal>deploy</goal>
</goals>
</execution>
</executions>
</plugin>
删除上述 nexus 特定插件后,我现在在快照上获得一致的时间戳和内部版本号:
<metadata modelVersion="1.1.0">
<groupId>com.mycompany</groupId>
<artifactId>my-lib</artifactId>
<version>2.0.0-SNAPSHOT</version>
<versioning>
<snapshot>
<timestamp>20200225.174453</timestamp>
<buildNumber>22</buildNumber>
</snapshot>
<lastUpdated>20200225174453</lastUpdated>
<snapshotVersions>
<snapshotVersion>
<extension>jar</extension>
<value>2.0.0-20200225.174453-22</value>
<updated>20200225174453</updated>
</snapshotVersion>
<snapshotVersion>
<extension>pom</extension>
<value>2.0.0-20200225.174453-22</value>
<updated>20200225174453</updated>
</snapshotVersion>
<snapshotVersion>
<classifier>sources</classifier>
<extension>jar</extension>
<value>2.0.0-20200225.174453-22</value>
<updated>20200225174453</updated>
</snapshotVersion>
</snapshotVersions>
</versioning>
</metadata>
推荐阅读
- excel - 直接在 VBA 中应用 Powershell 语法
- c# - 按下按钮时检测 KeyDown
- google-cloud-run - 如何使用 Google Workflow 检索 Cloud Run 服务的 URL?
- javascript - Discord.js 角色检查优化
- java - 配置的 Jackson 对象映射器的意外序列化行为
- vba - 尝试从用户表单中的文本框中删除文本(文本 = Label.Caption),但一次只能输入一个,因为可以输入多个
- android - Android中的约束布局问题
- vba - 如何使用 VBA 从 Access 向 Outlook 邮件添加 html 签名?
- sql - 在 PostgreSQL 中显示来自外部关系的数据
- azure - 如何在 Mosaic 决策的路径中使用当前日期从 Azure Blob 获取文件