Maven依存ライブラリはEclipse IDEにデプロイされません

問題

デフォルトでは、EclipseでTomcatサーバーインスタンスを起動すると、プロジェクトの依存ライブラリはEclipseのTomcatプラグインライブラリフォルダ 'WEB-INF/lib’に正しく展開されません。 Maven " mvn eclipse:eclipse "コマンドで生成されたこの " .classpath "ファイルを参照してください。

<classpath>
  <classpathentry kind="src" path="src/main/java" including="** ** /** .java"/>
  <classpathentry kind="src" path="src/main/resources" excluding="** ** /** .java"/>
  <classpathentry kind="output" path="target/classes"/>

  <classpathentry kind="var"
    path="M2__REPO/org/apache/struts/struts-core/1.3.10/struts-core-1.3.10.jar"/>
  <classpathentry kind="var"
    path="M2__REPO/org/apache/struts/struts-taglib/1.3.10/struts-taglib-1.3.10.jar"/>

  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE__CONTAINER"/>
</classpath>

以下のTomcatプラグインフォルダを参照してください。依存関係ライブラリは展開されていません。 $ workspace folder \ .metadata \ .plugins \ org.eclipse.wst.server.core \ tmp0 \ wtpwebapps \ StrutsExample__

maven-eclipse-library-error1、title = "maven-eclipse-library-error1"

解決策

私が知っているように、2つの解決策があります:

1. Java EE依存モジュール

Eclipse IDEでプロジェクトを右クリックし、プロパティをクリックして Java EEモジュールの依存関係 を選択し、プロジェクト依存ライブラリをすべて確認します。

maven-eclipse-library-solution1、title = "maven-eclipse-library-solution1"

対応する " attributes "タグを追加して、Eclipseのクラスパス( .classpath )を更新します

<classpath>
  <classpathentry kind="src" path="src/main/java" including="** ** /** .java"/>
  <classpathentry kind="src" path="src/main/resources" excluding="** ** /** .java"/>
  <classpathentry kind="output" path="target/classes"/>
  <classpathentry kind="var"
    path="M2__REPO/org/apache/struts/struts-core/1.3.10/struts-core-1.3.10.jar" >
    <attributes>
      <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
    </attributes>
  </classpathentry>
  <classpathentry kind="var"
    path="M2__REPO/org/apache/struts/struts-taglib/1.3.10/struts-taglib-1.3.10.jar" >
    <attributes>
     <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
    </attributes>
  </classpathentry>
  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE__CONTAINER"/>
</classpath>

Tomcatプラグインフォルダを再度参照してください。すべての依存関係ライブラリは、 "WEB-INF/lib"フォルダに正しく展開されています。 $ workspace folder \ .metadata \ .plugins \ org.eclipse.wst.server.core \ tmp0 \ wtpwebapps \ StrutsExample__

image、title = "maven-eclipse-library-solution2"

2. WTPのサポート

あるいは、次のコマンドを発行してMavenがEclipse WTPツールをサポートできるようにすることもできます。

mvn eclipse:eclipse -Dwtpversion=2.0

上記のコマンドは、プロジェクトの " .settings "フォルダの下に " org.eclipse.wst.common.component "という名前の新しいファイルを生成します。

<project-modules id="moduleCoreId" project-version="2.0">
  <wb-module deploy-name="StrutsExample">
    <property name="context-root" value="StrutsExample"/>
    <wb-resource deploy-path="/" source-path="src/main/webapp"/>
    <property name="java-output-path" value="/target/classes"/>
    <dependent-module archiveName="struts-core-1.3.10.jar" deploy-path="/WEB-INF/lib"
handle="module:/classpath/var/M2__REPO/org/apache/struts/struts-core/1.3.10/struts-core-1.3.10.jar">
      <dependency-type>uses</dependency-type>
    </dependent-module>
    <dependent-module archiveName="struts-taglib-1.3.10.jar" deploy-path="/WEB-INF/lib"
handle="module:/classpath/var/M2__REPO/org/apache/struts/struts-taglib/1.3.10/struts-taglib-1.3.10.jar">
      <dependency-type>uses</dependency-type>
    </dependent-module>
    <wb-resource deploy-path="/WEB-INF/classes" source-path="src/main/java"/>
    <wb-resource deploy-path="/WEB-INF/classes" source-path="src/main/resources"/>
  </wb-module>
</project-modules>

今度はサーバーを再起動すると、すべての依存関係ライブラリが自動的に "WEB-INF/lib"フォルダに展開されます。

deploy リンク://tag/eclipse/[eclipse] maven