Eclipse显示正确的依赖关系,但mvn包生成具有过时依赖关系的WAR

时间:2014-11-27 04:03:35

标签: java eclipse maven war

我正在使用一个名为A的网络应用程序,使用maven,在eclipse中,使用m2e eclipse插件和命令行maven。

A取决于自定义库B,它安装在本地存储库中。在pom.xml

中详细说明了这种依赖关系

当我使用eclipse的Tomcat在eclipse中测试应用程序时,一切都很好 - 使用了最新版本的B,我在Maven依赖项文件夹中看到了这一点。

但出于某种原因,当我进入命令行并运行mvn package时,生成的WAR使用过时版本的B。我可以说,因为当我将它部署到应用服务器,其日志记录和功能以特定方式中断,并在较新版本的B中修复。

我有什么方法可以调试这里发生的事情吗?什么是日食呢mvn package不包括在内?

项目定义:

<groupId>org.com.web</groupId>
<artifactId>DocImgTransfer_Servlet</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>

以某种方式获得旧版本的lib的依赖性:

<dependency>
  <groupId>DocImgTransfer</groupId>
  <artifactId>DocImgTransfer</artifactId>
  <version>1.0.0</version>
</dependency>

所以真的有3个问题:

  1. 如果maven从本地仓库中抓取错误的版本只是一些问题,我有没有办法告诉Maven仔细检查它所引入的依赖版本?

  2. 在这种情况下,mvn cleanmvn package -U可能会有所帮助吗?

  3. 唯一的建议只是仔细检查pom.xml中的groupId,artifactId,版本?

1 个答案:

答案 0 :(得分:0)

  1. 如果maven从本地回购获取错误的版本只是一些问题,有没有办法让我告诉Maven仔细检查它所引入的依赖版本?
  2. a)您的CustomatJar-1.0.0.jar版本是否与maven相同或者是maven拿起旧版本? 即,您是否拥有CustomatJar的代码,并且您只是更新它v / s在战争中包装的那个是真正的旧版本,例如CustomatJar-0.0.5

    i)你可以通过解压缩战争,看看罐子里面装的是哪个版本。

    ii)mvn依赖:依赖会告诉你maven命令行认为应该打包哪些依赖项。 more info

    1. 唯一的建议只是仔细检查pom.xml中的groupId,artifactId,version?
    2. 你说服务器有没有旧版本的CustomatJar吗? 你确实已经仔细检查了你的POM.xml ......对吗?