我正在尝试使用maven编译器插件的可执行文件而不是基本的声明源/目标。当我这样做时,我遇到了编码的问题,我很好奇它为什么会发生。我知道将编码设置为cp1252可以解决使用可执行文件时的问题,但是无法弄清楚为什么utf-8在不使用可执行文件时没问题。
可执行文件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<fork>true</fork>
<executable>D:\Java\jdk1.7.0_79\bin\javac</executable>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
注意:D:\ Java \ jdk1.7.0_79也是我在环境中的JAVA_HOME
打破maven编译器版本3.1和3.5.1的编译:
[ERROR] D:\Projects\testproject\src\main\java\com\test\service\TestService.java:
[467,70] error: unmappable character for encoding UTF-8
原稿:
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
仍然可以成功编译,但这是在日志中: maven编译器插件版本:3.5.1
[ERROR] /D:/Projects/testproject/src/main/java/com/test/service/TestService.java
[467,85] unmappable character for encoding UTF-8
maven编译器插件版本:3.1
[WARNING] /D:/Projects/testproject/src/main/java/com/test/service/TestService.java
[467,85] unmappable character for encoding UTF-8
从两个日志传递的参数:-g -nowarn -target 1.7 -source 1.7 -encoding UTF-8。
我在maven编译器插件主页上注意到了:
编译器插件 用于编译项目的源代码。从3.0开始,默认 编译器是javax.tools.JavaCompiler(如果你使用的是java 1.6)和 用于编译Java源代码。如果你想强制插件使用 javac,您必须配置插件选项forceJavacCompilerUse。
有没有办法让可执行文件使用相同而不是javac,如果这导致了问题?
非常感谢任何帮助。