gpt4 book ai didi

ant - 在 Ivy 中发布的工件模式

转载 作者:行者123 更新时间:2023-12-04 20:31:01 24 4
gpt4 key购买 nike

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

<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”,在这种情况下该部分不会被省略。

那还有没有别的办法呢?

最佳答案

你为什么不使用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 模式:

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

现在如果你使用 <dependency org="com.organisation" name="foo" rev="1.0"/>您将获得 ivy.xml 中描述的所有工件.有一个way仅选择需要的工件。

关于ant - 在 Ivy 中发布的工件模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6582940/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com