读取ant taskdef中的属性文件

Posted

技术标签:

【中文标题】读取ant taskdef中的属性文件【英文标题】:read properties file inside ant taskdef 【发布时间】:2015-11-25 15:10:17 【问题描述】:

我正在定义一个 build.xml 文件,我需要从属性文件中读取一些路径。在我定义的目标上读取它是可以的。当我尝试读取 taskdef 中的值时,问题就来了。我怎样才能做到这一点?

我有这样的事情:

<taskdef name="xjc" classname="com.sun.tools.xjc.XJCTask">
   <classpath>
      <fileset dir="$paths.jaxb.lib" includes="*.jar" />
   </classpath>
</taskdef>

我的“paths.jaxb.lib”是 jaxb lib 文件夹的路径。如何从我的 paths.properties 文件中获取此值?

【问题讨论】:

【参考方案1】:

&lt;taskdef&gt; 任务之前读取属性文件。

如果paths.properties 是……

paths.jaxb.lib=path/to/my/jaxb/lib

...然后在build.xml...

<!-- Loading the Java properties file sets the paths.jaxb.lib Ant property. -->
<property file="paths.properties"/>

<taskdef name="xjc" classname="com.sun.tools.xjc.XJCTask">
  <classpath>
    <fileset dir="$paths.jaxb.lib" includes="*.jar" />
  </classpath>
</taskdef>

【讨论】:

以上是关于读取ant taskdef中的属性文件的主要内容,如果未能解决你的问题,请参考以下文章

ANT 从属性文件中读取属性,使用 ANT 属性

ant 读取键值属性文件

使用类加载器AntClassLoader []找不到taskdef类org.apache.tools.ant.taskdefs.optional.ssh.Scp

在Gradle构建中使用Ant taskdef和loaderref

Java 和 ProGuard - 使用类加载器 AntClassLoader 找不到 taskdef 类 proguard.ant.ProGuardTask

原因:未找到类org.apache.tools.ant.taskdefs.optional.XMLValidateTask