【问题标题】:Published artifact patterns in Ivy在 Ivy 中发布的工件模式
【发布时间】:2015-06-22 23:35:29
【问题描述】:

当我从我的存储库(例如文件系统)解析工件时,我使用两种工件模式:

<artifact pattern="${location}/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"/>
<artifact pattern="${location}/[organisation]/[module]/[revision]/[artifact]-[revision]-[type]s.[ext]"/>

第一个用于 jar 文件,第二个用于源或其他类型的工件。 我希望能够以同样的方式发布工件,但我不知道如何。

仅使用上面的模式,发布任务似乎只考虑第一个,因此删除了类型。如果多个工件具有相同的名称和扩展名,它们将被覆盖。

如果我只使用第二种模式,那么对于 jar 工件,它会生成 ${artifact}-${revision}-jars.jar 这真的很难看。

最后,模式中似乎可以有可选部分,例如:

<artifact pattern="${location}/[organisation]/[module]/[revision]/[artifact]-[revision](-[type]s).[ext]"/>

但是 -[type]s 部分仅在类型为 null 或空时才被省略,我希望类型保持“jar”,在这种情况下不省略该部分。

那么还有其他方法吗?

【问题讨论】:

  • 我也遇到了同样的问题...有什么解决办法吗?
  • @Flavio 我添加了答案

标签: ant ivy


【解决方案1】:

为什么不使用ivy.xml 文件来制作工件?您应该需要创建ivy.xml 并将它们放在您的模块文件夹中,靠近jar 文件。 ivy.xml 例子:

<ivy-module version="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
    <info organisation="com.organisation" module="foo" revision="1.0"/>
    <publications>
        <artifact name="foo"/>
        <artifact name="foo-sources" type="source" ext="zip"/>
    </publications>
</ivy-module>

那么你应该在你的解析器中定义常春藤模式:

<ivy pattern="${location}/[organisation]/[module]/[revision]/ivy.xml"/>

现在,如果您使用&lt;dependency org="com.organisation" name="foo" rev="1.0"/&gt;,您将获得ivy.xml 中描述的所有工件。有一个way 可以仅选择所需的工件。

【讨论】:

  • 当然我使用 ivy.xml。我没有提到它,因为我没有任何问题,只有工件。依赖关系与我的问题完全无关。
【解决方案2】:

不是真正的解决方案,但更好的方法是:

<artifact pattern="${location}/[organisation]/[module]/[revision]/[type]s/[artifact]-[revision].[ext]"/>

【讨论】:

    【解决方案3】:

    我也遇到了同样的问题。 我找到了解决方案,您可以使用:

       [artifact](-[classifier]).[ext]
    

    -classifier 在包含 -sources/-javadoc.jar 的源/javadoc-jar 上的 jar 上将为空/空

    我知道已经有一段时间了,但我通过谷歌找到了这个问题。因此,我认为这对任何未来的人都会有所帮助。

    【讨论】:

      猜你喜欢
      • 2011-10-28
      • 2011-07-03
      • 2012-02-29
      • 2015-10-13
      • 2015-07-03
      • 2011-11-02
      • 2013-09-03
      • 2015-02-04
      • 2018-07-06
      相关资源
      最近更新 更多