質問

拡張されるJavaアノテーションプロセッサがあります AbstractProcessor.

サポートされている2つのオプションがあります。 addResDirverbose, 、そして私はそれらをこのように設定しようとしています:

-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構成です:

<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プラグインを構成するためのガイド)

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


編集:

私が今持っています バグレポートを提出しました.

役に立ちましたか?

解決

まだ本当の答えはありません。

バグが提出されます: 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> また、私の問題は解決されるタイプのプロパティでした)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top