Jenkins Maven 作业字符集
Jenkins Maven Job Charset
我正在使用 Spring 测试来测试我的 Spring 应用程序,它基本上是一个服务于 JSON 和其他一些上传媒体的 REST 网络服务。
单元测试在所有开发人员的机器上都运行良好,其中一些测试在 JSON 响应中返回的字符串,其中一小部分测试特殊字符。
应用程序已完全配置为对所有内容使用 UTF-8,但是 JSON 响应返回了错误的字符集,因此测试失败。
我尝试在 /etc/default/jenkins
上配置以下行:
JAVA_ARGS="-Djava.awt.headless=true -Dfile.encoding=UTF8"
但我仍然得到相同的结果。
我也有机会看到 Charset.defaultCharset()
是什么,当 运行 一个特定的测试...它看起来像 US-ASCII
...
有人可以告诉我我做错了什么吗?
我发现问题所在了。
在我的 Spring 测试配置中,我正在读取一个 DML.sql 文件来创建初始测试数据,初始化数据库的行是这样的:
<jdbc:initialize-database data-source="dataSource">
<jdbc:script location="classpath:sql/DML.sql" />
</jdbc:initialize-database>
这让我的配置依赖于服务器字符集,在我的情况下,我在服务器中设置了那个奇怪的 "US-ASCII"。
我通过将 encoding
属性设置为 UTF-8
使其独立:
<jdbc:initialize-database data-source="dataSource">
<jdbc:script location="classpath:sql/DML.sql" encoding="UTF-8" />
</jdbc:initialize-database>
因此可以针对具有特殊字符的值测试来自 H2 数据库的值。
我正在使用 Spring 测试来测试我的 Spring 应用程序,它基本上是一个服务于 JSON 和其他一些上传媒体的 REST 网络服务。
单元测试在所有开发人员的机器上都运行良好,其中一些测试在 JSON 响应中返回的字符串,其中一小部分测试特殊字符。
应用程序已完全配置为对所有内容使用 UTF-8,但是 JSON 响应返回了错误的字符集,因此测试失败。
我尝试在 /etc/default/jenkins
上配置以下行:
JAVA_ARGS="-Djava.awt.headless=true -Dfile.encoding=UTF8"
但我仍然得到相同的结果。
我也有机会看到 Charset.defaultCharset()
是什么,当 运行 一个特定的测试...它看起来像 US-ASCII
...
有人可以告诉我我做错了什么吗?
我发现问题所在了。
在我的 Spring 测试配置中,我正在读取一个 DML.sql 文件来创建初始测试数据,初始化数据库的行是这样的:
<jdbc:initialize-database data-source="dataSource">
<jdbc:script location="classpath:sql/DML.sql" />
</jdbc:initialize-database>
这让我的配置依赖于服务器字符集,在我的情况下,我在服务器中设置了那个奇怪的 "US-ASCII"。
我通过将 encoding
属性设置为 UTF-8
使其独立:
<jdbc:initialize-database data-source="dataSource">
<jdbc:script location="classpath:sql/DML.sql" encoding="UTF-8" />
</jdbc:initialize-database>
因此可以针对具有特殊字符的值测试来自 H2 数据库的值。