我正在使用一个名为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个问题:
如果maven从本地仓库中抓取错误的版本只是一些问题,我有没有办法告诉Maven仔细检查它所引入的依赖版本?
在这种情况下,mvn clean
或mvn package -U
可能会有所帮助吗?
唯一的建议只是仔细检查pom.xml
中的groupId,artifactId,版本?
答案 0 :(得分:0)
a)您的CustomatJar-1.0.0.jar版本是否与maven相同或者是maven拿起旧版本? 即,您是否拥有CustomatJar的代码,并且您只是更新它v / s在战争中包装的那个是真正的旧版本,例如CustomatJar-0.0.5
i)你可以通过解压缩战争,看看罐子里面装的是哪个版本。
ii)mvn依赖:依赖会告诉你maven命令行认为应该打包哪些依赖项。 more info
你说服务器有没有旧版本的CustomatJar吗? 你确实已经仔细检查了你的POM.xml ......对吗?