人工分类器元数据快照maven 3.0

发布于 2024-12-07 13:13:40 字数 802 浏览 3 评论 0原文

我的问题很“简单”,但直到现在我才找到解决方案:

我有 2 个项目。

  • 项目 A 在特定配置文件的帮助下使用分类器(称为 dev 或 pro)构建
  • 项目 B 与 A 具有依赖性(使用分类器 dev 或 pro)

  • 我使用分类器在 A 上执行安装目标 (dev)

  • 我使用另一个分类器重新执行安装目标 (pro)

然后我编译B项目 (我将依赖项放在 A 上,使用分类器 DEV)

它运行良好。


但是当我对 artifactory (目标部署)执行相同操作时,它不会工作 (并且存储库被配置为“唯一”)

它不起作用,因为人工制品? Maven依赖? 正在尝试下载 带有分类器 dev AND 最新时间戳、构建号

但这个“逻辑”是错误的,因为最新的时间戳对于A分类器专业版来说是有效的!!!

我读取了本地存储库和工件存储库之间的metadata.xml。有类似(但不完全相同)

我错了什么? 谢谢你们!

  • Maven版本:3.03
  • Artifactory版本:2.3.4.1

My problem is "simple" but I didn´t found the solution until now:

I have 2 projects.

  • Project A built with a classifier (called dev or pro) with help of a specific profile
  • Project B with a dependency to A (using classifier dev or pro)

  • I execute install goal on A with a classifier (dev)

  • I re-execute install goal with another classifier (pro)

Then I compile the B project
(and i put the dependency to A, with classifier DEV)

It works well.


But when I do the same with artifactory (goal deploy) , it doesn´t work
(and the repository is configured "unique")

It doesn´t work because artifactory? maven dependency? is trying to download
A with classifier dev AND latest timestamp, buildnumber of whatever
.

But this "logic" is wrong because the latest timestamp is valid for A classifier pro!!!

I read the metadata.xml between local repository and artifactory repository. There are similar (but not exactly the same)

What i´m wrong?
Thanks guys!

  • Maven version : 3.03
  • Artifactory version : 2.3.4.1

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

饭团 2024-12-14 13:13:40

这可能是因为在撰写此答案时,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>

目前支持 Maven 3 元数据生成 计划用于 Artifactory 的下一版本 (2.3.5)。
在此之前,我只能建议您使用不同的工件 ID 来生成两个工件。

This might be due to the fact that at the time of writing this answer, Artifactory generates Maven 2 type of metadata, which as opposed to the newer type generated by Maven 3, does not specify a separate "latest version" per classifier\type of Artifact.

That is, while Maven 2 metadata specifies the latest build and known history:

<?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 specifies the latest build per artifact type and classifier:

<?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>

Support for Maven 3 metadata generation is currently planned for Artifactory's next version (2.3.5).
Until then I can only suggest that you produce both artifacts with different artifact IDs.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文