2

AbstractProcessorから拡張されたJavaアノテーションプロセッサがあります。

サポートされているオプションは2つあり、、、addResDirおよびverboseを次のように設定しようとしています。

-AaddResDir=src/main/webapp -Averbose=true

私もこれを試しました:

-AaddResDir=src/main/webapp,verbose=true

単一のパラメータが機能している間、例えば

-AaddResDir=src/main/webapp

複数のパラメータを機能させることができず、関連するドキュメントが見つかりません。APTでパラメータを手動で解析する必要がありますか?

私が持っているのはjavac -help:の出力だけです。

-Akey[=value]   Options to pass to annotation processors

編集

結局のところ、それはMavenの問題であることが判明しました。これが私のMaven構成です:

<plugin>
    <inherited>true</inherited>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.1</version>
    <configuration>
        <source>1.6</source>
        <target>1.6</target>
        <optimize>true</optimize>
        <debug>true</debug>
        <compilerArgument>-AaddResDir=src/main/webapp -Averbose=true</compilerArgument>
    </configuration>
</plugin>

残念ながら、mavenは引数をargs配列内の単一の文字列としてJavacに送信しますが、もちろん2つの文字列である必要があります。マップバージョン<compilerAguments>も役に立ちません。

<Averbose>true</Averbose>
<AaddResDir>src/main/webapp</AResDir>

出力を生成します:

[... , -Averbose, true, -AaddResDir, src/main/webapp]

javacには構文が必要ですが

[... , -Averbose=true, -AaddResDir=src/main/webapp ]

<Averbose=true />
<AaddResDir=src/main/webapp />

無効なXMLです。

Mavenプラグインの構成ガイドのマップのマッピングを参照してください)

そして、私はこれを変える方法がないのではないかと心配しています。


編集:

バグレポートを提出しました

4

1 に答える 1

0

現時点では、本当の答えはありません。

バグが報告されています:MCOMPILER-135

そして私は3つの異なるパッチを提出しました。最後のパッチはプロパティタイプの変数を導入しています。

<additionalCompilerArguments>
    <property> <name>-Akey=value</name> </property>
    <property> <name>-verbose</name> </property>
    <property> <name>-Xmaxerrs</name> <value>1000</value> </property>
</additionalCompilerArguments>

このソリューションは、さまざまなパラメーター構文形式をサポートしているため、最も柔軟なソリューションです。

(既存のパラメーター<compilerArguments>もプロパティタイプの場合、私の問題は解決されます)

于 2010-09-16T12:47:50.790 に答える