Mavenでビルドした時に発生したエラー④文字化け

MavenからJUnitを実行した時に発生した文字化けについて。

環境

  • Spring Boot: 2.3.3.RELEASE
  • STS4: 4.3.2.RELEASE
  • Maven: 3.6.1

エラー内容

実行前にテストデータの登録が必要なテストケースで、テストデータを投入する際に文字化けが発生してしまい、登録できない問題が発生しました。
この際用意したSQLファイルはUTF-8で作成してあり、データベースで使用するエンコードも同じくUTF-8です。

解決方法

Mavenのプラグイン (maven-surefire-plugin)のコマンドライン引数にエンコーディングを指定します。
具体的には、pom.xmlに下記のように指定します。

<!-- 省略 -->

<build>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
		</plugin>
		<!-- 以下追加 -->
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-surefire-plugin</artifactId>
			<configuration>
				<argLine>-Dfile.encoding=UTF-8</argLine>
			</configuration>
		</plugin>
	</plugins>
</build>

参考