基本的なMaven2プラグインである、 Maven Compiler Pluginを紹介します。
Javaソースコードをコンパイルするのに必要なプラグインです。
、、、と思いきや、設定によってはC#もコンパイルできるらしいです。
Javaソースコードをコンパイルするのに必要なプラグインです。
、、、と思いきや、設定によってはC#もコンパイルできるらしいです。
Goals
Compilerプラグインは2つのゴールがあります。compiler:compile
メインのソースコードをコンパイルします。compiler:testCompile
テストのソースコードをコンパイルします。
使い方
2つのゴールは、標準的なビルドライフサイクルに紐付けられているので、フェーズの指定をすれば実行できます。メインのソースコードをコンパイル
$ mvn compile
ゴールを直接指定しても実行できます。
$ mvn compiler:compile
テストのソースコードをコンパイル
$ mvn test-compile
ゴールを直接指定しても実行できます。
$ mvn compiler:testCompile
設定
よく使う設定を紹介します。その他の設定については、compiler:compileとcompiler:testCompileを参照してください。
source
Javaコンパイラに対する-source
オプションを指定します。指定されたリリースとソースの互換性を保つjavac -help
より
デフォルトは1.4になっているのでGenericsなどの最近の文法を使っている場合にはいちいち指定しなくてはなりません。
そろそろ最近の設定(1.6?)に変更してほしい。。。
target
Javaコンパイラに対する-target
オプションを指定します。特定の VM バージョン用のクラスファイルを生成するjavac -help
より
デフォルトは1.4になっているのでGenericsなどの最近の文法を使っている場合にはいちいち指定しなくてはなりません。
そろそろ最近の設定(1.6?)に変更してほしい。。。
encoding
Javaコンパイラに対する-encoding
オプションを指定します。ソースファイルが使用する文字エンコーディングを指定するjavac -help
より
設定例
pom.xml<project>
・・・・
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
・・・・
</build>
・・・・
</project>
おまけ
C#のコンパイル
Using Non-Javac Compilersによると、以下のような設定でC#のコンパイルができるようです。<project> [...] <build> [...] <plugins> [...] <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <compilerId>csharp</compilerId> </configuration> <dependencies> <dependency> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-compiler-csharp</artifactId> <version>1.5.2</version> </dependency> </dependencies> </plugin> [...] </project>
C#はまったくわからないので実際にコンパイルされるかどうかはわかりませんが、上記設定で実行して
BUILD SUCCESSFUL
となることは確認しました。そう考えるとMaven2ってJavaのビルドツールというよりはもっと汎用的なビルドツールとして使えるんだな。
今はまだプラグインが充実してないけれど。