Java 6:複数のパラメーターを渡す方法
-
02-10-2019 - |
質問
拡張されるJavaアノテーションプロセッサがあります AbstractProcessor.
サポートされている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構成です:
<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>
また、私の問題は解決されるタイプのプロパティでした)