2011-06-09 72 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國旗可以幫助你。