【问题标题】:Ivy- store "type"-attribute of artifact in Maven repository常春藤 - 存储“类型” - Maven存储库中工件的属性
【发布时间】:2014-10-23 04:39:26
【问题描述】:

我尝试使用 Maven 2 兼容格式从旧 Ivy 存储库迁移到 Maven 自托管实例 (Artifactory)。遗留的 Ivy 工件利用了 Ivy 支持的所有属性,将其命名为:“configuration (conf)”、“extension (ext)”、“type”和“name”。

我可以将大多数属性映射到 Maven 中的等价物:

  • “conf”->“范围”
  • “名称”->“artifactId”
  • “ext”->“包装”
  • “组织”->“groupId”
  • “修订”->“模型版本”

但是对于“类型”,Maven 工件中没有任何属性。 “type”属性的主要用途是控制工件部署(在何处以及如何部署它们)。

我注意到 Maven 工件不支持“自定义”属性。那么如何以符合标准的方式存储“类型”信息呢?

【问题讨论】:

    标签: maven ant ivy


    【解决方案1】:

    取自ivy documentation

    已发布工件的类型。它通常是它的扩展,但是 不必要。例如,ivy 文件的类型为“ivy”,但具有 'xml' 扩展名

    除非指定工件的“类型”,否则默认为 jar。

    更新

    Maven 使用分类器支持不同类型的模块工件。这可以在 ivy 中使用extra attributes 进行模拟。

    例子:

    【讨论】:

    • 也许我的问题不够详细,但我确实知道 Ivy 如何以及如何处理“type”属性,因为我经常使用它 :-)。我的问题在于 Maven,它没有类似的属性/属性。在 Maven 中你只有“包装”,这类似于 Ivy 的“ext”属性。由于“ext”在 Ivy 中非常简单/固定,因此我在 Maven 中缺少一个附加属性,因此我也可以在 Maven 中存储我当前的“类型”信息(例如部署路径提示)。
    • @PeterBranforn 你的观察是正确的。与常春藤相比,Maven 的选择更少。你到底在用什么类型?这不是我在项目中设置的。
    • 我使用额外的参数来控制人工制品零件的下载位置。重要的细节:由于每个 ivy.xml 包含多个人工制品部分,每个部分都根据“类型”属性下载到单独的位置。
    • @PeterBranforn 使用 ivy 额外属性怎么样?具体使用 Maven 分类器。
    • 嗨,马克,分类器已经用于人工制品“ext”声明。我正在阅读一些关于“滥用”其他属性的信息,但这基本上会破坏与 Maven-builds 本身的兼容性:-(.
    猜你喜欢
    • 1970-01-01
    • 2018-07-07
    • 2011-09-07
    • 1970-01-01
    • 2013-12-28
    • 1970-01-01
    • 2018-07-02
    • 1970-01-01
    • 2010-11-15
    相关资源
    最近更新 更多