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

据我所知,有两种解决方案:

1. Java EE依赖模块

在Eclipse IDE中,右键单击项目,单击属性,然后选择Java EE模块依赖项,然后检查所有项目依赖项库。

maven-eclipse-library-solution1

通过添加相应的“ attributes ”标签,这将更新Eclipse的classpath( .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

注意
在Eclipse中,您可能需要在“服务器”选项卡中删除现有的Tomcat服务器实例,然后创建一个新的tomcat服务器实例才能生效。

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”文件夹中。

翻译自: https://mkyong.com/maven/maven-dependency-libraries-not-deploy-in-eclipse-ide/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值