就 XML 而言,命名空间与任何其他命名空间一样。但是,Ant 使用
antlib:
作为 URL 方案来知道它应该在类路径中查找 org/apache.ivy/antlib.xml
文件。请参阅 Ant 手册中的 antlib 类型。
由于它正在寻找类路径,因此 antlib.xml 可以位于类加载器可以找到它的任何位置。默认设置是将必要的 jar 文件放在
<ant install>/lib
目录中。您还可以使用 -lib
启动 ant 来指定不同的目录或仅设置 CLASSPATH
(不推荐)。
是的,您可以导入属性文件。请参阅有关多项目的 Ivy 手册信息。 Ivy 支持
${property}
语法,您可以使用 Ant 的 <property>
任务来加载 Ivy 可以使用的文件。如果您想为 Ivy 定义“全局”值,您还可以在 ivysettings.xml 中使用 <property>
元素。
我只给你部分答案,希望有人能验证一下:
对我来说,修复
build.xml
中 <ivy:resolve>
、<ivy:retrieve>
等的语法错误的方法是删除 URL 并将其替换为 xmlns:m="antlib:org.apache.ivy.ant"
。
build.xml
<project name="proj" default="dist" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant">
<taskdef uri="antlib:org.apache.ivy.ant" resource="org/apache/ivy/ant/antlib.xml">
<!-- ... -->
</taskdef>
<!-- ... -->
</project>
ivy.xml
<ivy-module version="2.0" xmlns:m="antlib:org.apache.ivy.ant">
<info organisation="org" module="proj"/>
<dependencies>
<!-- ... -->
</dependencies>
</ivy-module>