1

未解決のコンパイルの問題があるプロジェクトをビルドするために maven を使用したいと考えています。

主な目的は、コンパイル エラーを含むクラスのある種のスタブを使用して、アプリケーションをパッケージ化し、展開または実行することです。Eclipse がそうであることは理解しています ( JDT Coreのおかげです)。

Javac 以外のコンパイラを使用して Eclipse コンパイラを使用するのApache Maven ドキュメントに従って、maven Java コンパイラ プラグインを構成します。コンパイラ/ビルダーの動作を変更するためにいくつかの引数を設定する必要があるかもしれないと考えて、Help Eclipse - Compiling Java codeを読んでいましたが、どのコンパイラ/ビルダーオプションまたはこれらの組み合わせがうまくいくかわかりません。

これまでのところ、Maven Java コンパイラー・プラグインの次の構成は、Eclipse コンパイラーを使用してコンパイルし、コンパイル・エラーなしで Java クラスに対してのみ生成された .class (jvm バイトコード) を含むアプリケーションをパッケージ化します。この動作を取得するには、Eclipse コンパイラ (compilerId と依存関係を参照) と set を使用する必要がありますfailOnError=false

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <configuration>
        <compilerId>eclipse</compilerId>
        <source>1.7</source>
        <target>1.7</target>
        <optimize>true</optimize>
        <showWarnings>true</showWarnings>
        <showDeprecation>true</showDeprecation>
        <failOnError>false</failOnError>
        <compilerArguments>
            <org.eclipse.jdt.core.compiler.problem.fatalOptionalError>disabled</org.eclipse.jdt.core.compiler.problem.fatalOptionalError>
            <org.eclipse.jdt.core.compiler.problem.forbiddenReference>ignore</org.eclipse.jdt.core.compiler.problem.forbiddenReference>
        </compilerArguments>
    </configuration>

    <dependencies>
         <dependency>
              <groupId>org.codehaus.plexus</groupId>
              <artifactId>plexus-compiler-eclipse</artifactId>
              <version>2.3</version>
         </dependency>
    </dependencies>
</plugin>

この構成では、実行でコンパイル エラーに含まれていないクラスが使用されない限り (スタブが生成されないため)、Java アプリケーションを実行できますが、Java EE コンテナーでは、クラスのロードが失敗するため、アプリケーションをデプロイすることはできません。 .

これについて何か助けていただければ幸いです。

4

1 に答える 1

3

解決策を共有するためだけに、その瞬間に を に置き換えてplexus-compiler-eclipsetycho-compiler-jdt欲求の振る舞いを取得します。

このproceedOnErrorパラメーターは、エラーが発生してもコンパイルを継続する必要があることを示し、問題のメソッドまたは問題の種類を含むクラス ファイルをダンプし、コンパイル エラーに対処する方法を示します。

次は最終的な構成サンプルです。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <configuration>
        <compilerId>jdt</compilerId>
        <source>1.7</source>
        <target>1.7</target>
        <optimize>true</optimize>
        <failOnError>false</failOnError>
        <compilerArguments>
            <proceedOnError/>
        </compilerArguments>
    </configuration>
    <dependencies>
        <dependency>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>tycho-compiler-jdt</artifactId>
            <version>0.22.0</version>
        </dependency>
    </dependencies>
</plugin>

Tycho FAQには、さらに多くのプラグイン構成の例があります。また、可能なコンパイラ引数については、Java 開発ユーザー ガイド(Eclipse ヘルプ サイト)の「バッチ コンパイラの使用」セクションで説明されています。

于 2015-07-07T23:11:00.377 に答える