9

Mavenを使用してビルドされたJavaプロジェクトがあります。「javac」コマンドラインにオプションを追加したいのですが、特に、いくつかの「-J」オプションを渡したいと思います。

だから通常私はこのようなことをします:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <compilerArgument>-J-Xdebug</compilerArgument>
        <compilerArgument>-J-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005</compilerArgument>
    </configuration>
</plugin>

ただし、これを試してみると、次の形式のエラーが発生します。

[ERROR] Failure executing javac,  but could not parse the error:
javac: invalid flag: -J-Xdebug
Usage: javac <options> <source files>
use -help for a list of possible options

よく調べてみると、maven-compiler-pluginはすべてのコンパイラ引数をオプションファイルに書き込み、「javac@optionfile」のようなjavacを呼び出しているようです。http://docs.oracle.com/javase/6/docs/technotes/tools/solaris/javac.htmlにあるjavacの公式ドキュメントによると:

@argfilesオプションとソースファイルを一覧表示する1つ以上のファイル。これらのファイルでは、-Jオプションは使用できません。

したがって、maven-compiler-pluginのオプションは機能しないようです-argファイルを使用したいのですが、argファイルに必要なオプションを含めることはできません。

代わりにマップを使用するためのいくつかの提案も見ましたが、これを試したときに同様の結果が得られました。

他に選択肢はありますか?

4

1 に答える 1

4

コンパイラ プラグインを使用すると、 jdk の場所を指定できるため、次のようなものを使用できます。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.0</version>
    <configuration>
      <verbose>true</verbose>
      <fork>true</fork>
      <executable><!-- path-to-javac-invoking-script --></executable>
      <compilerVersion>1.3</compilerVersion>
    </configuration>
  </plugin>

すべての引数を追加の引数とともに実際のjavacに渡すスクリプト/バットファイルへのパスを提供しますか?

編集-元の問題はコンパイラ プラグイン 2.4+ で修正されており、これは私の回避策なしで機能するはずです。

于 2013-02-17T12:18:49.710 に答える