本誌からのお知らせ

「実演!リファクタリング」 WEB+DB PRESS Vol.37特集 特設ページ

この記事を読むのに必要な時間:およそ 12 分

訂正情報

pom.xmlへの設定追加(コンパイル時にソースコードのエンコーディングを指定)

プロジェクトのビルド設定ファイル(pom.xml)に対して,JVMのデフォルトエンコーディングがShift_JIS以外のOS(要するにWindows系以外のOS)をお使いの方向けの設定を追加しました。

Maven2は明示的な指定がない場合にはJVMのデフォルトエンコーディングでコンパイルを行おうとします。そして,今回の特集のソースコードのエンコーディングはWindows系Shift_JIS(MS932)です。WindowsからMaven2でビルドを行う際には問題がないのですが,JVMのデフォルトエンコーディングがMS932以外(要するにWindows系以外のOS)をお使いの方がコンパイルを行う際には,コンパイルエラーが発生してビルドが失敗してしまいます。

その対策として,pom.xmlに対して,コンパイル時にソースコードのエンコーディングを指定する記述を追加しました(以下の赤字部分⁠⁠。

<build>
  <finalName>webdb-tdd-webapp</finalName>
  <sourceDirectory>src/main/java</sourceDirectory>
  <testSourceDirectory>src/test/java</testSourceDirectory>

  <pluginManagement>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.4</source>
          <target>1.4</target>
          <encoding>MS932</encoding>
        </configuration>
      </plugin>
    </plugins>
  </pluginManagement>

   <plugins>
     <plugin>
       <groupId>org.mortbay.jetty</groupId>
…
</build>

Windowsをお使いの方は更新しなくても問題はありませんが,複数のOSで開発を行う際の「けじめ」として,他山の石とせずに参考にしてください。pom.xmlを書く際には,必ず上記のようにmaven-compiler-pluginの設定も行うようにしたほうがいいでしょう。

なお,2007年3月2日以降のダウンロード用サンプルコードには,上記設定が記述されています。