非英语环境下的MAVEN编译出错

今天Windy同学刚装的虚拟机(windos xp)上编译项目居然出错了:

.............
[WARNING] Using platform encoding (GBK actually) 
to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 1 resource
[INFO] [compiler:compile {execution: default-compile}]
[INFO] Compiling 60 source files to 
E:\work-ems\trunk\ems-monitor-daemon\target\classes
[INFO] -------------------------------
[ERROR] BUILD FAILURE
[INFO] -------------------------------
[INFO] Compilation failure
E:\work-ems\trunk\ems-monitor-daemon\
src\main\java\nl\enovation\commons\monitor\
SrkCbsAliveMonitor.java:[22,55] 警告:com.sun.org.apache.xerces.internal.jaxp.datatype.XMLGregorianCalendarImpl 
是 Sun 的专用 API,可能会在未来版本中删除
E:\work-ems\trunk\ems-monitor-daemon\
src\main\java\nl\enovation\commons\monitor\
SrkCbsAliveMonitor.java:[52,45] 警告:com.sun.org.apache.xerces.internal.jaxp.datatype.XMLGregorianCalendarImpl 
是 Sun 的专用 API,可能会在未来版本中删除
.............

很奇怪的是在其他的机器上,不论Window 还是 Linux 都并没有看到这个错误。然后突然觉得 这个中文的“警告”很扎眼,结果还真是和这个中文有关系。

在 plexus-compiler-javac这个模块里,Hardcode了判断错误和警告的字符串为“error:” 或者 “warning:”,所以 “警告:”被当成了CompileError抛出。 已经有日本人提交了这个BUG : http://jira.codehaus.org/browse/MCOMPILER-109

解决方案是: 切换为英语环境。如果硬要用中文环境呢??….恩 可能你要自己改代码了。