【问题标题】:Maven install does not encode in UTF-8 even if configured即使已配置,Maven 安装也不会以 UTF-8 编码
【发布时间】:2017-04-09 01:20:59
【问题描述】:

您好,我的项目编码有问题。

当我从 Eclipse 运行 JUnit 测试时,没有失败。问题是当我执行 maven > clean maven > install 时,其中一项测试失败了。

我有这个字符串:“ADMINISTRACIÓN”,当我从 Eclipse 运行 JUnit 时没问题,但我已经打印了变量,当 maven 进行测试时,这个字符串的值为:“ADMINISTRACI�N”。

我已将在 Eclipse 中找到的所有编码属性都更改为 UTF-8。 - 以这种方式配置 pom:

      (...)
      <project>
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            (...)
       </properties>
      </project>
      (...)
      <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.6.0</version>
            <configuration>
              <encoding>UTF-8</encoding>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
     </plugins>
     (...)

但是输出是一样的。我有一个同事和我有同样的项目,同样的 eclipse 客户端和配置,她的 maven 测试打印口音没有问题。

还有什么想法吗?

非常感谢!

【问题讨论】:

  • 我也尝试在notepad++中打开.java文件并将编码设置为UTF-8,但没有成功。
  • 尝试使用ISO-8859-1

标签: java maven testing encoding utf-8


【解决方案1】:

尝试使用以下命令运行您的构建:

mvn -DargLine=-Dfile.encoding=UTF-8 clean insall

如果有帮助,您可以在项目中配置surefire:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <argLine>-Dfile.encoding=${project.build.sourceEncoding}</argLine>
            </configuration>
        </plugin>

由于System.out 使用默认系统编码可能会出现问题,您可以通过设置file.encoding java 属性来更改此设置。

【讨论】:

  • @Jose 或者更新 Surefire,因为这是一个错误。您不需要设置文件编码:请参阅issues.apache.org/jira/browse/SUREFIRE-951
  • 在尝试了上述所有其他选项之后,这个选项也对我有用。就我而言,这是 Windows 下 JUnit 的一个编码问题(字符:Ä、Ü、Ö)。
  • 即使使用了 surefire 2.22.2,我也遇到了这个问题,但上面的插件配置仍然对我有用。谢谢!
  • 我通过 JAVA_TOOL_OPTIONS 设置了 -Dfile.encoding=UTF-8,但 maven-surefire-plugin 忽略了它。这个答案对我有用。
  • 如果你正在使用 jacoco,你应该考虑这个stackoverflow.com/questions/23190107/…
【解决方案2】:

我尝试了this post 中提到的所有设置来成功构建我的项目,但这对我不起作用。最后我可以使用mvn -DargLine=-Dfile.encoding=UTF-8 clean insall 命令成功构建我的项目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-17
    • 2018-06-05
    • 1970-01-01
    • 2020-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多