神器分类器元数据快照 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的主要内容,如果未能解决你的问题,请参考以下文章

C++ 预处理器元编程图灵完备吗?

使用 Maven 元数据发布 Ivy SNAPSHOTS

artifactory gradle 插件覆盖快照版本

Atlas2.1.0集成CDH6.3.0部署

可以从 Firestore 快照 Flutter 中获取元数据吗?

数据库热备份神器 - XtraBackup