神器分类器元数据快照 maven 3.0
Posted
技术标签:
【中文标题】神器分类器元数据快照 maven 3.0【英文标题】:artifactory classifier metadata snapshot maven 3.0 【发布时间】:2011-11-28 11:31:46 【问题描述】:我的问题很“简单”,但直到现在我才找到解决方案:
我有 2 个项目。
在特定配置文件的帮助下,使用 分类器(称为 dev 或 pro)构建的项目项目 B 依赖到 A(使用分类器 dev 或 pro)
我使用分类器 (dev) 执行 在 A 上安装目标
我使用另一个分类器重新执行安装目标 (pro)然后我编译B项目 (我将依赖项放在 A 上,使用分类器 DEV)
效果很好。
但是当我对 artifactory (goal deploy) 做同样的事情时,它不起作用 (并且存储库被配置为“唯一”)
它不起作用,因为人工制品? maven依赖? 正在尝试下载 A 带有分类器 dev AND 最新时间戳,任何版本号。
但这个“逻辑”是错误的,因为最新的时间戳对 A 分类器 pro 有效!!!
我读取了本地存储库和工件存储库之间的 metadata.xml。有类似的(但不完全相同)
我错了什么? 谢谢大家!
Maven 版本:3.03 神器版本:2.3.4.1【问题讨论】:
【参考方案1】:这可能是因为在编写此答案时,Artifactory 生成 Maven 2 类型的元数据,与 Maven 3 生成的较新类型相反,它没有为每个分类器指定单独的“最新版本” \工件类型。
也就是说,虽然 Maven 2 元数据指定了最新的构建和已知历史:
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<groupId>org.jfrog.test</groupId>
<artifactId>multi1</artifactId>
<version>2.1-SNAPSHOT</version>
<versioning>
<snapshot>
<timestamp>20110928.112713</timestamp>
<buildNumber>14</buildNumber>
</snapshot>
<lastUpdated>20110928112718</lastUpdated>
</versioning>
</metadata>
Maven 3 指定每个工件类型和分类器的最新构建:
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<groupId>org.jfrog.test</groupId>
<artifactId>multi1</artifactId>
<version>2.1-SNAPSHOT</version>
<versioning>
<snapshot>
<timestamp>20110928.112713</timestamp>
<buildNumber>14</buildNumber>
</snapshot>
<lastUpdated>20110928112718</lastUpdated>
<snapshotVersions>
<snapshotVersion>
<classifier>tests</classifier>
<extension>jar</extension>
<value>2.1-20110928.112713-14</value>
<updated>20110928112713</updated>
</snapshotVersion>
<snapshotVersion>
<extension>pom</extension>
<value>2.1-20110928.112713-14</value>
<updated>20110928112713</updated>
</snapshotVersion>
...
</snapshotVersions>
</versioning>
</metadata>
Artifactory 的下一个版本 (2.3.5) 目前支持 Maven 3 元数据生成 planned。 在此之前,我只能建议您生成具有不同工件 ID 的两个工件。
【讨论】:
感谢您的快速回答。 我会等待下一个版本的神器。理解 RTFACT-3794 和这个问题之间的关系并不容易(当然对我来说)。以上是关于神器分类器元数据快照 maven 3.0的主要内容,如果未能解决你的问题,请参考以下文章