Maven 入門 | Maven クイックスタート | エンコーディングとコンパイラ設定

前回の「プロジェクト作成と実行」で作成した pom.xml を編集し、エンコーディングとコンパイラのバージョンを設定する。

補足

前回の mvn package コマンドを実行すると、Windows 環境では次のような警告が発生した。

...
[WARNING] Using platform encoding (MS932 actually) to copy filtered resources, i.e. build is platform dependent!
...
[WARNING] File encoding has not been set, using platform encoding MS932, i.e. build is platform dependent!
...

今回の設定を行うと、この警告は表示されなくなる。

1. 変更前の pom.xml

前回プログラムを作成していれば、次の pom.xml が生成されているはずである。

my-app/pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.devkuma.app</groupId>
  <artifactId>my-app</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>my-app</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

2. 変更後の pom.xml

pom.xml を編集し、次の内容を保存する。

my-app/pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.devkuma.app</groupId>
  <artifactId>my-app</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
</project>

主な変更内容

properties を追加し、エンコーディングを UTF-8、コンパイラバージョンを 1.8 に設定する。 詳細は次のとおりである。

  • project.build.sourceEncoding: ソースやプロパティファイルなどのエンコーディング設定。
  • project.reporting.outputEncoding: レポートなどの出力リソースのエンコーディング設定。
  • maven.compiler.source: javac コマンドの -source 設定。
  • maven.compiler.target: javac コマンドの -target 設定。

その他の変更

  • 空行を追加。
  • JUnit を新しいバージョン 4.12 に変更。
  • 現時点では不要な nameurl タグを削除。

3. package コマンドの実行

次のコマンドで警告が表示されないことを確認する。

$ mvn clean package

念のため、以前の成果物を clean で削除してから実行する。