Maven2.2.0は複数の-Aオプションに対応していない

javacでAnnotation Processroにオプションを渡す場合-Aが使えるのですが、Mavenではオプションが複数ある場合に対応できていない、という話。

Antではこう書けます。

<javac fork="yes" srcdir="${src}" compiler="javac1.6"
	classpathref="classpath" destdir="${build}" debug="on" encoding="UTF-8" >
	<compilerarg line="-Adto.generation=true -Adto.package=hoge.dto"/>
</javac>

dto.generation=true というkey/valueのペアと dto.package=hoge.dto というkey/valueのペアの2つがわたされるのです。


しかし、Mavenだと、複数ではなく1つのオプションだとみなされてします。

<plugin>
	<artifactId>maven-compiler-plugin</artifactId>
	<configuration>
		<source>1.6</source>
		<target>1.6</target>
		<encoding>UTF-8</encoding>
		<compilerArgument>-Adto.generation=true -Adto.package=hoge.dto</compilerArgument>
	</configuration>
</plugin>

dto.generation」というkeyのvalueが「true -Adto.package=hoge.dto」だとみなされてしまうのです。。。

もうちょっと調べてみて、報告しよう。

この辺ぽい。主要なクラス。

plexus-compilerのサイト