ant使用JDT 编译多种编码文件方案
2017-11-21 14:41
597 查看
在实际的java ant打包的项目中遇到多种编码并称的情况,导致使用一次具体的便宜不能将目标class输出。这个时候可以使用jdt插件(ecj)编译指定编码,通过具体执行某次编译的文件和编码从而最后将文件汇总,得到预期的效果。
ant文件的写法如下:
具体的原理就是通过多遍的javac编译任务,根据不同的编码将结果进行汇集。从而到达所需要的效果,顺序上应该先编译大多数的文件,然后再具体文件夹,最后具体特定的文件,这样能够避免一些依赖问题。之所以第一次完整编译不进行exclude,是为了避免对乱码文件的依赖问题。
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,是为了避免对乱码文件的依赖问题。
相关文章推荐
- 如何编写Build对文件手机软件的编译--使用antenna和ant
- 解决 Eclipse 下使用 Ant 编译出现问题: 警告:编码 GBK 的不可映射字符
- 编码 utf8 的不可映射字符 ANT编译java文件的问题
- 用ant编译时出现“编码 UTF8 的不可映射字符“,这是因为编译的时候编码跟文件存储的编码方式不一样造成的
- 使用ant自动编译、打包生成apk文件
- 使用ANT编译打包JAVA文件
- 使用Ant编译出flex的swc文件
- 警告:编码 utf8 的不可映射字符 ANT编译java文件的问题
- 既然读文件要使用和文件编码一致的编码,那么javac编译文件也需要读取文件,它使用什么编码呢?
- 警告:编码 utf8 的不可映射字符 ANT编译java文件的问题
- 使用ant编译打包运行java文件
- 使用Ant编译大量java文件时出java.lang.OutOfMemoryError
- 《Android 自动编译、打包生成apk文件 2 - 使用原生Ant方式》
- 遇过的坑-用ant编译java项目,如果static变量有修改,使用了该static变量的java文件, 不会重编译
- 使用ant编译、运行junit、以及检查编码
- 使用ANT编译Android apk文件
- 使用ant编译打包java文件
- Android 自动编译、打包生成apk文件 2 - 使用原生Ant方式
- 如何编写Build文件对手机软件的编译打包----使用antenna和ant
- 编译utf8编码的tex文件使用中文truetype