web-dev-qa-db-ja.com

JAXBで生成されたソースをm2e / Indigoの下のEclipseビルドパスに取得するにはどうすればよいですか?

Helios/m2Eclipseでは、jaxbソースを生成すると、「プロジェクト構成の更新」を実行したときにEclipseソースパスに配置されていました。

これは、Indigo/m2e(2011年6月22日の初期リリース)では発生しません。これを修正するには何をする必要がありますか?

標準のmaven-jaxb2-pluginバージョン0.75を使用しています。

23
Ed Staub

Eclipseで、「Install New Software」に移動し、ソフトウェアサイトを追加します。 http://bitstrings.github.com/m2e-connectors-p2/releases/

「jaxb2用m2eコネクタ」を選択します

そのプラグインをインストールすると、jaxb2プラグインは新しいバージョンのm2eと正しく統合されます。

この情報は次のとおりです: https://bugs.Eclipse.org/bugs/show_bug.cgi?id=350299

25
Eric

さて、あなたは「target/generate-sources/xjc」を右クリックして、「ビルドパス->ソースフォルダとして使用」のようなものを選択する必要があります

6
Rafał

M2eコネクターを機能させることができない場合の代替回避策として、build-helper-maven-pluginを使用して生成されたソースをビルドパスに追加できます。

<build>
  ...
  <plugins>
    ...
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>build-helper-maven-plugin</artifactId>
      <version>1.7</version>
      <executions>
        <execution>
          <id>add-source</id>
          <phase>generate-sources</phase>
          <goals>
            <goal>add-source</goal>
          </goals>
          <configuration>
            <sources>
              <source>target/generated-sources/xmlbeans</source>
            </sources>
          </configuration>
        </execution>
      </executions>
    </plugin>
    ...     
  </plugins>
  ... 
</build>
2
Shane

この問題の修正を待っている間、私は次の一時的な回避策を使用しています。

別のmavenモジュールにjaxb-pluginと生成されたクラスがあります。 Eclipseでは、そのモジュールでのみ「Mavenの性質を無効にする」ことができます。次に、大規模なMavenプロジェクトの残りの部分でm2EclipseでIndigoを使用できます。これは、jaxbモジュールのjarに依存します(コマンドラインからビルドする必要があります)。私たちのプロジェクトはすでにこのように編成されているので、これは私にとってうまく機能します。

1
froden

Maven-jaxb2-pluginとEclipseにソースが添付されていないことに苦しんでいる人のために。作成者が SunからGlassfish JAXBアーティファクト に切り替え、依存関係ツリーが変更されました。以前は、推移的なものなしでjaxb-xjcにシェーディングされた多くのJAR。現在、これは削除されており、以前のtools.jarへの推移的な依存関係はEclipseの実行を中断します。 JDK VMでEclipseを起動すると、動作します(最新のMaven 3.3.9、Maven JAXB2プラグイン0.13.1、最新のm2eJAXB2コネクタおよびEclipseMars.2をテスト済み)

0
Michael-O