====== Maven Compiler Pluginのexcludes ====== {{tag>java maven}} [[https://maven.apache.org/plugins/maven-compiler-plugin/index.html|Maven Compiler Plugin]]の [[https://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#excludes|]]オプションを 使用すると、 指定したソースコードをコンパイル対象から除外することができる。 同様に[[https://maven.apache.org/plugins/maven-compiler-plugin/testCompile-mojo.html#testExcludes|]]オプションで テストコードをコンパイル対象から除外することができる。 ===== pom.xmlの例 ===== ... maven-compiler-plugin com/example/product/Foo.java com/example/product/bar/Bar.java com/example/product/FooTest.java com/example/product/bar/BarTest.java ... ===== 除外するファイルの指定方法 ===== ''''にはソースディレクトリからの相対パスでファイルを指定する。 末尾に''/''があればディレクトリ名、無ければファイル名として扱われる。 ワイルドカードはディレクトリ名の''**''とファイル名の''*''が使用可能。 ''com/example/product/Foo.java''と''com/example/product/bar/Bar.java''がある場合の例。 ^ exlucdeの指定 ^ 結果 ^ | com/example/product/Foo.java | Foo.javaを除外 | | com/example/product/Foo* | Foo.javaを除外 | | com/example/product/*oo.java | Foo.javaを除外 | | com/example/product/*oo* | Foo.javaを除外 | | com/example/product/Foo | × | | com/example/product/ | Foo.javaとBar.javaを除外 | | com/example/product/** | Foo.javaとBar.javaを除外 | | com/example/product/* | Foo.javaを除外 | | com/example/product | × | | com/example/product/*a*/ | Bar.javaを除外 | | com/**/bar/ | Bar.javaを除外 | | com/ | com配下全てを除外 | | com | × | | /com | × | | /example/ | × | | Foo.java | × | | **/Foo.java | Foo.javaを除外 | | **/Foo* | Foo.javaを除外 | | **Foo* | × | | ** | 全て除外 | ===== 落とし穴 ===== ''''で除外していても、除外していないファイルから参照されている場合は**除外されない**。 上の例で''Bar.java''が''Foo.java''を参照してる場合、 ''**/Foo.java''と設定しても ''Foo.java''はコンパイルの対象となる。