配置Maven以在JUnit测试中对资源文件使用特定的编码

时间:2019-06-26 11:54:03

标签: maven encoding resources

我认为Maven的配置和资源文件的编码有问题。

我编写了一个使用大输入数据的测试。因此,我将资源文件放入src / test / resources。在使用Eclipse时,测试运行良好,但是在使用maven时,测试失败。从消息中可以很明显地看出,德语“ umlauts”(äüöß)的转换不正确。我在Eclipse中进行测试时遇到了同样的问题,但是能够通过将其从数据库导出到UTF-8来解决。但是现在我在Maven中遇到了这个问题。所以我认为它使用了错误的编码。

我尝试过

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

在属性中,我已经尝试过

<encoding>UTF-8</encoding>

在SureFire插件的配置中。

两者都不起作用!

当在代码中将InputStreamReader设置为使用“ UTF-8”时,我可以使其工作,但是想知道是否有一种方法可以配置它而不需要它吗?

1 个答案:

答案 0 :(得分:0)

更新:在我撰写本文时和现在之间,这个问题发生了变化。您可能希望忽略它。

项目的源编码与InputStreamReader的编码无关。

我的意思是为Maven定义UTF-8意味着它将在构建期间以方式读取源文件和资源文件;但是,它不会影响您的源代码将文件读入自身的方式。

打个比方,可能是一些带有条形码的箱子在大洋彼岸运送。 Maven可以将盒子装到船上并将其推下码头,但是一旦您在大海上,软件就可以控制了!这意味着,如果您希望您的源代码针对其条形码打开包装盒,则您的软件还必须知道条形码。 Maven并不要求您的代码执行下游操作。

因此,使用明确的UTF-8流阅读器完全应该执行的操作。更改Maven配置不会消除使用指定UTF-8的流阅读器的必要。

来源: Edit Q-56776002-Wrong-Import