问题
在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依赖项。
参考
- http://m2eclipse.sonatype.org/
- http://www.mkyong.com/maven/maven-dependency-libraries-not-deploy-in-eclipse-ide/
- http://www.eclipse.org/forums/index.php?t=msg&goto=542963&
- http://www.eclipse.org/forums/index.php?t=msg&goto=543308&
- http://tux2323.blogspot.com/2010/06/review-eclipse-helios-rc4.html
翻译自: https://mkyong.com/maven/eclipse-web-deployment-assembly-maven-dependencies-issue/
在Eclipse中,Maven依赖项默认不会正确部署到“/WEB-INF/lib”。本文介绍了两种解决方案:使用WTP支持或m2eclipse插件,以确保依赖项正确部署。
2514

被折叠的 条评论
为什么被折叠?



