ant使用JDT 編譯多種編碼檔案方案
阿新 • • 發佈:2019-01-26
在實際的java ant打包的專案中遇到多種編碼並稱的情況,導致使用一次具體的便宜不能將目標class輸出。這個時候可以使用jdt外掛(ecj)編譯指定編碼,通過具體執行某次編譯的檔案和編碼從而最後將檔案彙總,得到預期的效果。
ant檔案的寫法如下:
具體的原理就是通過多遍的javac編譯任務,根據不同的編碼將結果進行彙集。從而到達所需要的效果,順序上應該先編譯大多數的檔案,然後再具體資料夾,最後具體特定的檔案,這樣能夠避免一些依賴問題。之所以第一次完整編譯不進行exclude,是為了避免對亂碼檔案的依賴問題。<!-- jdt編譯器 --> <property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdatper" /> <property name="compiler.args" value="-encoding UTF-8 -verbose -time -inlineJSR -g:lines,vars,source -preserveAllLocals "/> <property name="compiler-gbk.args" value="-encoding GBK -verbose -time -inlineJSR -g:lines,vars,source -preserverAllLocals" /> <javac destdir="${bin.dir}" includeantruntime="true" failonerror="true" nowarn="true"> <compilerarg line="${compiler.args}"/> <src path="${src.dir}"/> <classpath refid="compile.classpath"/> </javac> <!-- 第二遍進行GBK編譯 --> <javac destdir="${bin.dir}" includeantruntime="true" failonerror="true" nowarn="true"> <compilerarg line="${compiler-gbk.args}"/> <src> <pathelement location="your gbk file path" /> </src> <classpath refid="compile.classpath"/> </javac>