私はサーブレット/jsp Web プロジェクトを持っていますが、これは Eclipse で正常に動作し、war fine としてエクスポートされます (いったんクリーンアップすると)。homebrew jar (ワークスペース内の別のプロジェクトの出力)を除くすべての依存関係をWEB-INF\lib
フォルダーから削除して、プロジェクトを Mavenized しました。Maven ゴールを実行すると、この jar から欠落しているクラスに関するメッセージが表示されます。package
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
#..... NOTICE THIS COMES FROM A CUSTOM JAR
[ERROR] /C:/path/DataServlet.java:[3,30] package xxx.java.helpers does not exist
今これは以前に尋ねられましたが、最も厳密な解決策はローカルリポジトリを作成することのようです:インストールせずにmaven 2ビルドクラスパスにjarを追加できますか? (注:私はmaven 3にいます)。
私はこれを避けたいのですが、maven がこの jar を に詰め込む方法はありWEB-INF\lib
ますかwar
?
cp
戦争中のコンテンツにMavenプラグインを使用するソリューションWEB-INF\lib
は大歓迎ですが、このフォルダーの「特別な」性質を考慮したソリューションが必要だと感じています.
所見:
Alt+F5 は次の行を削除します。
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
これは、Java ビルド パスの「Web アプリ ライブラリ」に対応します。そのため、Maven が考慮に入れることを拒否するだけでなく
WEB-INF\lib
、Eclipse のビルド パスも完全に壊してしまいます。
関連している:
- Maven:リポジトリで利用できないjarをEclipseに含める方法は?
- Maven Eclipse プラグインを使用します: Maven Eclipse プラグインを介して Eclipse ユーザー ライブラリでクラスパスを更新します- m2e と互換性がありません
- m2e Eclipse プラグインはどのように Eclipse と対話しますか? -明らかにm2eはpomをチェックしてからEclipseビルダーを呼び出します(したがって、
.classpath
が読み取られます) - Eclipse maven 対応の Web アプリはワークスペース プロジェクトを参照しますが、Tomcat サーバーの実行時にそれらがデプロイされません
- Eclipse 内で実行されている Tomcat または Jboss に依存する Maven プロジェクトをデプロイする