Ant Ivy检索任务:属性类型的有效值是什么?

时间:2014-05-22 10:14:41

标签: java ant ivy

此处http://ant.apache.org/ivy/history/trunk/use/retrieve.html的文档不清楚。

"逗号分隔的已接受工件类型列表(自1.4起)"

我见过的例子:

  1. <ivy:retrieve pattern="${libs.dir}/[artifact]-[revision]-[type].[ext]" />
    • 这是否意味着所有工件类型?
    • 我看到Google Guava下载了捆绑类型。
  2. <ivy:retrieve type="jar" pattern="${libs.dir}/[artifact]-[revision]-[type].[ext]" />
  3. <ivy:retrieve type="source" pattern="${libs.dir}/[artifact]-[revision]-[type].[ext]" />

1 个答案:

答案 0 :(得分:0)

type属性对应于依赖描述符(ivy.xml file)的publications部分中声明的依赖项工件的类型。在您自己的依赖项中,您通常可以根据逻辑注意事项使用任何类型的值。对于可运行的jar,对于打包的文档jar,您使用source类型,对于打包的文档docs等。从概念上讲,它接近工件文件扩展名。

<publications>
   <artifact name="${module.artifact.jar.name}" type="jar" ext="jar" conf="master" />
   <artifact name="${module.artifact.src.name}" type="source" ext="jar" conf="sources" />
</publications>

当你依赖第三方库时,type的值将相应地等于其ivy.xml中声明的值(或者将通过如何从maven pom自动转换ivy.xml的方式来定义.xml如果使用maven repo)。我猜一个bundle类型的工件已准备好在osgi环境中使用(不确定)。

我想说通常你不必在type任务中指定retrieve。相反,您指定配置conf(如maven中的范围),配置将带来publications->artifact ivy.xml部分中映射到它的那些类型。例如,当您检索master conf时,会检索jar类型的工件;当您要求检索sources conf时,会出现source类型的工件。