Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ant 常春藤中已发布的人工制品模式_Ant_Ivy - Fatal编程技术网

Ant 常春藤中已发布的人工制品模式

Ant 常春藤中已发布的人工制品模式,ant,ivy,Ant,Ivy,当我从我的存储库(例如文件系统)解析工件时,我使用两种工件模式: <artifact pattern="${location}/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"/> <artifact pattern="${location}/[organisation]/[module]/[revision]/[artifact]-[revision]-[type]s.[ext]"/>

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

<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]"/>

但是只有当类型为null或空时,-[type]的部分才会被省略,我希望该类型保持为“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>


仅选择所需的工件。

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

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

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

   [artifact](-[classifier]).[ext]
-分类器在其包含的sources/javadoc jars-sources/-javadoc.jar上的jar上将为null/空


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

当然,我使用ivy.xml。我没有提到它,因为我没有任何问题,只有工件。依赖性和我的问题完全无关。我也有同样的问题。。。“有什么解决办法吗?”弗拉维奥补充道
   [artifact](-[classifier]).[ext]