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]