WTP - M2E不部署传递依赖(WTP - m2e not deploying transit

2019-08-16 18:41发布

我有一个以这种方式构建的Web应用程序:

a.jar文件- > B.war - > C.war

我使用Eclipse朱诺和WTP版本是1.1。 该a.jar文件是被包含在由B.war工作空间实用项目。 B.war是由C.war包括作为覆盖一战项目。 这是方式 ,我这样做:

<dependency>
    <groupId>com.projects</groupId>
    <artifactId>B</artifactId>
    <version>1.0-SNAPSHOT</version>
    <type>war</type>
    <scope>runtime</scope>
</dependency>

在那之后,我部署C ++项目到Tomcat服务器。 这就像一个魅力,如果我手动部署的Maven产生战争到Tomcat,因为a.jar文件包括在WEB-INF / lib目录下 。 然而,当我让M2E-WTP做部署,因为它是做正确的覆盖,但不包括传递依赖我的问题就来了。 我试着包括它作为一个POM,因为我读的地方在这里,但我有同样的结果。

<dependency>
    <groupId>com.projects</groupId>
    <artifactId>B</artifactId>
    <version>1.0-SNAPSHOT</version>
    <type>war</type>
    <scope>runtime</scope>
</dependency>

<dependency>
    <groupId>com.projects</groupId>
    <artifactId>B</artifactId>
    <version>1.0-SNAPSHOT</version>
    <type>pom</type>
</dependency>

我使用M2E(1.2)M2E-WTP(0.16)的最新版本,并与Maven配置更新我的项目。

它是一个M2E-WTP问题,或者干脆做我要组织我的项目,其他的方式?


EDITED

我注意到M2E-WTP配置保存到Eclipse的project./settings/org.eclipse.wst.common.component文件。 这就是如何查找我的战争:

<dependent-module deploy-path="/"
    handle="module:/overlay/prj/B?includes=**/**&amp;excludes=META-INF/MANIFEST.MF">
    <dependency-type>consumes</dependency-type>
</dependent-module>
<dependent-module deploy-path="/"
    handle="module:/overlay/slf/?includes=**/**&amp;excludes=META-INF/MANIFEST.MF">
    <dependency-type>consumes</dependency-type>
</dependent-module>

我可以看到战争的依赖性设置为消费而罐子依赖性设置使用

发布M2E-WTP版本0.17似乎并没有解决它。


编辑(2013年8月30日)

今天,我又回到了同样的问题。 即使我与Eclipse安装开普勒WTP的最新的稳定版本的开箱,这个问题似乎仍然存在。 我认为这是解决了,但我显然mischeck它...

Answer 1:

我想是不是你的项目组织的问题。 你的问题是非常相似,这M2E-WTP bug报告 。



Answer 2:

这似乎是一个Eclipse的财富和WTP插件的问题。

我有同样的问题,我用这种方式解决:

  1. 备份您的Eclipse工作区和你的项目代码
  2. 从日食删除您的项目(不删除内容)
  3. 打开命令终端(CMD)
  4. 运行mvn日食:清洁
  5. 运行mvn蚀:日食-Dwtpversion = 2.0
  6. 用文本编辑器编辑你的Eclipse类路径文件:%PROJECT_PATH%\类路径
  7. .classpath文件删除与属性种类=“变种”的所有行。 例如:

    <classpathentry种类= “VAR” 路径= “M2_REPO /的javax / servlet的/ servlet的API / 2.5 / servlet的API-2.5.jar” 源路径=“M2_REPO /的javax / servlet的/ servlet的API / 2.5 / servlet的API-2.5 -sources.jar“/>

  8. 保存文件并关闭编辑器。
  9. 在Eclipse中,单击:文件 - >导入...-> Maven->导入现有Maven项目,并重新导入项目
  10. Maven的 - >更新项目(如果你想)
你可以在问题解决和Maven依赖是有Eclipse项目性质见展开组件

希望这可以帮助。



Answer 3:

我也有这个问题。 我有一个丑陋的解决方法:

放在一个单独的项目(类型JAR) 所有原始战争的依赖关系,使双方原有的战争和战争叠加取决于这一点。 所以对于例如:

a.jar文件- > B.war - > C.war

a.jar文件- > B-dependencies.jar(新模块称为B-依赖性创建)

B-dependencies.jar - > B.war

B-dependencies.jar - > C.war

请注意,这不是具体到Tomcat; 我使用JBoss。



文章来源: WTP - m2e not deploying transitive dependencies