eclipse 插件开发中,xtend 生成的代码是根据用户设置的workspace中的编码来决定最终生成文件的编码格式的。如果想强制生成文件编码为固定格式的话(例如UTF-8), 网上查的一种方法是在插件工程的build.properties加入javacDefaultEncoding.. = UTF-8;
例如 :
文件(build.properties)
source.. = src/,\
xtend-gen/
output.. = bin/
bin.includes = META-INF/,\
javacSource=1.7
javacDefaultEncoding.. = UTF-8
src.excludes = xtend-gen/
但自己测试并不可行,理解了下,这里的“javacDefaultEncoding.. = UTF-8“ 仅仅代表我代码的编码格式而已。
要强制是xtend生成的文件为UTF-8只有从本身生成文件的读写流来:
var osw = new OutputStreamWriter(new FileOutputStream(path+"/model_res.xml"), "UTF-8");
osw.write(GenMoRoResXml(lstMo,lstRo).toString);
osw.flush();
osw.close();
这样xtend生成的代码被强制为UTF-8了