2011-06-09 68 views
0

我几乎可以肯定,如果不编写自己的任务类,我无法真正做到这一点,但我想我会问。是否有一些魔术属性或ant任务与<javac>一样工作,但运行我的$JAVA_HOME/bin/javac可执行文件而不是运行$JAVA_HOME/lib/tools.jar中的javac类的代码?我想这样做的原因是因为我可以更改javac二进制文件以便始终使用Xlint进行编译,如果不编辑它们,那么让所有build.xml文件也可以这样做,这样会很好。 (有些人通过其他任务隐式调用javac)<javac>的编译器属性是用于类代码的,它不会让你简单地指定要运行的文件。运行可执行文件而不是java类的Ant javac任务

回答

1

Javac任务具有fork属性,也是executable之一。结合这些。

此外,你可能想设置compiler=extJavac,但我不确定这是否会改变某些东西。

下面是来自例子部分报价:

如果你想运行一个不同的JDK的javac编译器,你应该告诉蚂蚁, 在哪里可以找到编译器和哪个版本的JDK,你会因此它可以使用 可以选择正确的命令行开关。下面的例子中,执行 在一个新的处理的JDK 1.1的javac并使用即使当蚂蚁在不同版本的一个Java虚拟机正在运行正确的命令行开关 :

<javac srcdir="${src}" 
     destdir="${build}" 
     fork="yes" 
     executable="/opt/java/jdk1.1/bin/javac" 
     compiler="javac1.1" 
    /> 
0

蚂蚁可以重新定义现有的具有使用预设的新行为。 preset definition根据当前定义生成一个新的定义,并带有一些预设属性或元素。这与compilerarg国旗可以帮助你。