您的位置:首页 > 编程语言 > Java开发

ant使用JDT 编译多种编码文件方案

2017-11-21 14:41 597 查看
在实际的java ant打包的项目中遇到多种编码并称的情况,导致使用一次具体的便宜不能将目标class输出。这个时候可以使用jdt插件(ecj)编译指定编码,通过具体执行某次编译的文件和编码从而最后将文件汇总,得到预期的效果。

ant文件的写法如下:

<!-- 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>


具体的原理就是通过多遍的javac编译任务,根据不同的编码将结果进行汇集。从而到达所需要的效果,顺序上应该先编译大多数的文件,然后再具体文件夹,最后具体特定的文件,这样能够避免一些依赖问题。之所以第一次完整编译不进行exclude,是为了避免对乱码文件的依赖问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  eclipse java ant