[Eclipse]Mavenでコードフォーマッタを指定する

需要がなくはなさそうなのに、google:maven eclipse フォーマッタあたりで検索しても引っかからなかったので、後学の人の参考程度に書き残す。ぱっと検索したときに日本語のエントリが引っかかってくるかどうかは、結構違いがありますからね。

ちなみに、現在(2009/09/16)上記のキーワードでググってみると真っ先に出てくるのが、自分が検証してたときのTwitterのログが・・・w


Loading Code Styles Fileいわく、pom.xmlに下記を加えた後で、"mvn eclipse:configure-workspace"を叩く。そうすると、workspaceにフォーマッタが取り込まれて、自動でそのフォーマッタがデフォルト扱いになります。フォーマッタファイルは、Eclipseの設定から事前にエクスポートしておいてください。

<project>
  [...]
  <build>
    [...]
    <plugins>
      [...]
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-eclipse-plugin</artifactId>
        <configuration>
          <workspace>${basedir}</workspace>
          <workspaceCodeStylesURL>http://svn.apache.org/repos/asf/maven/plugins/trunk/maven-eclipse-plugin/src/optional/eclipse-config/maven-styles.xml</workspaceCodeStylesURL>
        </configuration>
      </plugin>
      [...]
    </plugins>
    [...]
  </build>
  [...]
</project>

いくつか、注意点を。

  • workspace全体に影響を及ぼすので、同一workspaceで複数プロジェクトを管理している場合は注意が必要
  • は各人の環境で違うことが多いだろうから、POMには設定しない方がいいかも
    • その際は、"mvn eclipse:configure-workspace -Declipse.workspace=path-to-dir"でworkspaceを指定する
    • 指定しないままmvnを実行すると、エラーログが出てくるので分かるでしょう
  • は(ベーシック認証など無しに)アクセスできるURLでないとダメ
    • フォーマッタもソースコードなどと一緒に、バージョン管理の対象にするのもあり
    • その場合、以下のようにをローカルのファイルを参照するように書き換える
          <workspaceCodeStylesURL>${basedir}/coding-styles.xml</workspaceCodeStylesURL>
  • 既にEclipseを立ち上げている状態ならば、いったん再起動しないとフォーマッタが読み込まれない
  • ただ単にフォーマッタを取り込んだだけでは、反映されないかも。取り込んだ後に(変更しなくてもいいので)フォーマッタをごにょごにょいじってたら反映されるようになった感じ。(未確認)