2016-04-22 5 views
1

Eclipse m2eプラグインを使用して既存のWebアプリケーションをEclipseにインポートしています。また、TomcatはWebアプリのデプロイに使用されます。私はEclipseのServersリストからTomcatを実行します。 Tomcatサーバーでプロジェクトを実行しようとしたときにClassNotFoundExceptionを取得した場合を除いて、すべて正常に動作します。見つからないクラスは、Webアプリケーションプロジェクトに依存する別のm2eプロジェクトのクラスです。Eclipse m2eプラグインがTomcatサーバーに正しくフォーマットされていないjarファイルを配布する理由

そして私は $EclipseWorkspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/MyApp/WEB-INF/lib のようなWebアプリケーションの展開フォルダにナビゲートし、見つかったクラスが実際にWEB-INF/libに生成されたではない不満を含むjarファイルを見つけました。しかし、その瓶は奇妙なレイアウトになっていた。

レイアウトが src/main/java/com/mycompany/xxx.java target/classes/com/mycompany/xxx.class 以下のようなものだったが、私は、Webアプリケーションのプロパティの展開アセンブリセクションに見えた

com/mycompany/xxx.class を期待できない、すべてが大丈夫でした。

なぜEclipse(またはm2eプラグイン)が間違ったフォーマットのJARファイルを生成するのですか?

+0

あなたのフォルダ構造はどのように見えますか? – khmarbaise

+0

@khmarbaise、私のプロジェクトは典型的なマルチプロジェクト構造として編成されています。ルートでは、親pom(pomとしてパッケージ化されている)が定義され、サブフォルダは親pomの子プロジェクトとして編成されます。ルートとしての親から、私たちは息子レベルのプロジェクトと孫プロジェクトを持っています。非常に多くのプロジェクトがありますが、私はこれを要約するだけです。 – Popeye

+0

あなたの問題は何ですか?あなたが説明した内容はこれまでのところokです。 – khmarbaise

答えて

1

Eclipse用の.classpath、.projectファイル、.settings/folderを生成するために、maven Eclipseプラグインを使用していました。 mvn eclipse:eclipse

Eclipse m2eプラグインを使用する前に、これらのすべてのEclipseを消去しなかった .classpath file .project file .wtpmodules file .setting folder

最後にすべてを削除しました。 .classpath file .project file .wtpmodules file .setting folder です。 m2eプラグインを使用してEclipseにすべてのmavenプロジェクトを再インポートします。

その後、私が言及した問題はなくなりました!すべての瓶はすぐれた形になっています! 既存のEclipseファイルのように見えるため、m2eプラグインがうまく動作せず、予期しない結果が発生しました。

+1

代わりに 'mvn eclipse:eclipse'を使用しないでください。[Maven-eclipse-Plugin is retired](https://maven.apache.org/plugins/maven-eclipse-plugin/)代わりにM2Eを使用してください。 – khmarbaise

+0

@khmarbaiseはい、それが私がM2Eに移行する理由です。 – Popeye

+0

あなたのプロジェクト(.project、.classpath、.settings)からすべてのEclipse固有のファイルを削除して、プロジェクト全体をmavenプロジェクトとしてインポートすると、m2eに移行する必要はありません。 pomが原因です... – khmarbaise

関連する問題