Eclipse:Web部署程序集和Maven依赖项问题

在Eclipse中,Maven依赖项默认不会正确部署到“/WEB-INF/lib”。本文介绍了两种解决方案:使用WTP支持或m2eclipse插件,以确保依赖项正确部署。

问题

在Eclipse 3.5或早期版本中,为了将Maven依赖项部署到正确的“ / WEB-INF / lib ”文件夹,您必须通过“ Java EE模块依赖项”配置依赖项,并且更新的“ .classpath ”文件将看起来如下:

文件:“。classpath”,由Java EE模块依赖项…

...
<classpathentry kind="var" path="M2_REPO/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1.jar" 
   sourcepath="M2_REPO/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1-sources.jar">
   <attributes>
     <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
   </attributes>
</classpathentry>
...

从Eclipse 3.6开始,“ Java EE模块依赖项”被“ Web部署程序集”代替,但是您可以通过“参考项目类路径条目”进行相同的操作,但是,它将更新“ .classpath ”文件,如下所示:

Web部署程序集的文件:“。classpath”…

...
<classpathentry kind="var" path="M2_REPO/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1.jar" 
   sourcepath="M2_REPO/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1-sources.jar">
   <attributes>
     <attribute name="org.eclipse.jst.component.dependency" value="../"/>
   </attributes>
</classpathentry>
...

可悲的是,默认值(value =” ../”)使得所有Maven的依赖项都无法部署。

这不是什么大问题,您仍然可以手动将(value =” ../”)修改为(value =” / WEB-INF / lib”) ,但是每次运行Maven构建时它将被覆盖。 不用担心,仍然有两种解决方案:

1. WTP支持

忽略“参考项目类路径条目”设置,而是使Maven支持WTP 2.0

mvn eclipse:eclipse -Dwtpversion=2.0

它将在“ settings ”文件夹下生成一个名为“ org.eclipse.wst.common.component ”的新文件,请参见该文件的一部分:

文件:“ org.eclipse.wst.common.component”,由WTP提供

...
<dependent-module archiveName="jsp-api-2.1.jar" deploy-path="/WEB-INF/lib" 
  handle="module:/classpath/var/M2_REPO/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1.jar">
  <dependency-type>uses</dependency-type>
</dependent-module>
...

有了WTP支持,它有助于将Maven依赖项正确地部署到“ / WEB-INF / lib ”文件夹中。

2. m2eclipse插件

安装m2eclipse ,这是一个Eclipse插件,用于将Maven集成到Eclipse IDE中。 安装完成后,右键单击项目文件夹,选择“ Maven ”->“ Update Project Configuration ”,它将相应地更新“ .classpath ”文件,请参见代码片段

文件:“。classpath”,作者:m2eclipse

...
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER">
  <attributes>
    <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
  </attributes>
</classpathentry>
...

它还有助于正确部署Maven依赖项。

参考

  1. http://m2eclipse.sonatype.org/
  2. http://www.mkyong.com/maven/maven-dependency-libraries-not-deploy-in-eclipse-ide/
  3. http://www.eclipse.org/forums/index.php?t=msg&goto=542963&
  4. http://www.eclipse.org/forums/index.php?t=msg&goto=543308&
  5. http://tux2323.blogspot.com/2010/06/review-eclipse-helios-rc4.html

翻译自: https://mkyong.com/maven/eclipse-web-deployment-assembly-maven-dependencies-issue/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值