0

我的 Eclipse 工作区中有两个 Maven 项目,A生成 jar 和B生成战争。AB的依赖项,因此在B的 POM 中。

我的问题是,当我使用B运行 Tomcat 服务器时, A没有部署到 /lib/ 中的 .jar 中。

似乎很奇怪 A 出现在 B 的Maven 依赖项中作为文件夹,而不是 jar。这在某种程度上是异常的吗?如果是这样,我该如何解决?

如果这不是问题,可能是 Tomcat 的问题。我是否需要以某种方式对其进行配置以适应此依赖项架构(其中依赖项显示为文件夹)?

谢谢!

--

编辑:手动导出B的 .war 文件后,我发现A被放入 /lib/ 作为一个空的 .ear 文件。

这是显示为文件夹的依赖项的屏幕截图:在此处输入图像描述

以下是 A 的 POM 的相关部分:

<groupId>br.com.reglare</groupId>
<artifactId>rule-model</artifactId>
<packaging>jar</packaging>
<version>1.8</version>

和乙:

<dependency>
    <groupId>br.com.reglare</groupId>
    <artifactId>rule-model</artifactId>
    <version>1.8</version>
</dependency>

@urir:是的,它找不到 A 中定义的类:http: //990fca173882239e.paste.se/

4

2 回答 2

0

假设你在 eclipse 中使用 m2e 来管理 webapp,你需要安装m2e-wtp。您还应该能够在市场的 eclipse 中找到它。它负责确保当您通过 Eclipse 启动一个 Maven Web 项目时,它会将所有依赖项放在正确的位置。安装插件后,您可能希望删除项目并再次将其作为“现有 maven 项目”导入,然后插件将正确设置所有项目。事后应用它对我来说是不确定的。

于 2012-10-11T15:30:44.270 回答
0

依赖项应该在你的 pom 中以这种格式定义:

    <dependency>  
        <groupId>xmlbeans</groupId>  
        <artifactId>xmlpublic</artifactId>  
        <version>2.2.0</version>  
    </dependency>

还要查看依赖树,请使用“dependency:tree”指令,如下所示:

mvn clean compile dependency:tree

如果依赖项仍然不在 war 的 WEB-INF/lib 文件夹中,则使用调试标志运行编译并查找错误:

mvn -X clean compile
于 2012-10-11T14:17:11.770 回答