6

Eclipse/Maven と「ワークスペース プロジェクトからの依存関係を解決する」のコーナー ケースのように見えるものがあります。私のプロジェクトには、書かれたコードと生成されたコードが混在しており、生成されたコードは JAXWS を使用する依存関係から来ています。

問題は、「依存関係の解決」をチェックすると、Eclipse/Maven が JAR 依存関係を無視し、ワークスペースだけを見てすべてを解決しようとするため、Eclipse で「パッケージ/クラスが見つかりません」(生成されたファイルに関連する) などのエラーが表示されることです。コード) プロジェクトはコマンド ラインから Maven を使用して正常にビルドされますが。

一方、チェックを外すと、Maven リポジトリ内の JAR を確認するだけですべてが解決されます。2 番目のオプションは通常は機能しますが、クラスまたは変数を Ctrl キーを押しながらクリックするなどの操作を行うと、クラス ファイル エディタが表示され、「ソースが見つかりません」というメッセージが表示され、あまり役に立ちません。また、IDE でコードを編集しても、その後「maven install」を実行しないと、同期が取れなくなる可能性があります。

これは主に Eclipse の不都合だと思いますが、面倒です。Maven の依存関係をソース (またはデバッグ) でビルドするように変更することでこれを解決することを検討していますが、必ずしもすべてでこれを行うことはできません。「依存関係を解決する」オプションは、私が説明したように、いずれかの方法でのみ機能することを意図していますか?

4

3 に答える 3

3

ビルド ヘルパー maven プラグインを確認することをお勧めします。

次のように構成できます。

              <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>1.5</version>
                <executions>
                    <execution>
                        <id>add-source</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>add-source</goal>
                        </goals>
                        <configuration>
                            <sources>
                                <source>target/generated-sources</source>
                                <source>target/jaxws/wsimport/java</source>
                            </sources>
                        </configuration>
                    </execution>
                </executions>
            </plugin> 

これにより、Eclipse Maven プラグインは、生成されたソースを確認し、それをプロジェクトのクラスパスに含めるように指示されます。

生成されたソースを Eclipse のクラスパスに手動で追加することもできます。(生成されたフォルダーを右クリック -> ビルド パスに追加)

于 2013-05-31T08:19:31.853 に答える
0

私はこれが古い問題であることを知っています。しかし、更新された「m2e-wtp」プラグインを使用して、Juno で同じことに遭遇しました。したがって、私は他の読者の利益のためだけに答えています。

これは、戦争プロジェクトでのみ発生していました。最終的に解決した唯一のことは、戦争プロジェクトのフォルダーの下にある「.settings」フォルダーを削除し、Eclipseを再起動することでした。

于 2013-12-20T20:59:17.580 に答える