2017-12-18 193 views
0

我有以下的项目结构调试战争文件内包含一个特定的JAR文件的

A (testlib removed) 
/\ 
V V 
B C 
    \/
    V 
    D (packs to war) 

基本上,项目A是B和C的依赖其在项目d的转依赖性

最初我在项目A中有一个图书馆说testlib。但是,我在项目A pom中删除了这个图书馆。

我做了以下内容:

1. mvn clean install on project A (`testlib` remove) 
2. mvn install on project B 
3. mvn install on project C 
4. mvn install on Project D, which creates a `war` say `d.war`. 

当我打开d.war档案,我可以看到testlib存在内部WEB-INF/lib

我对所有的项目尝试MVN dependency:tree,我找不到testlib任何项目。 我想了解的testlib的可能原因包括在war文件或如果有调试一个更好的办法..

+0

您还可以在'D'项目中添加'dependency:tree'命令的输出吗? – zaerymoghaddam

+0

对不起,项目和依赖关系是内部项目的一部分,所以我无法添加输出。 – user3288346

+0

我假设你的意思是“基本上,项目A是(而不是)B和C的依赖关系,而这又依赖于(而不是)项目D” - 正确吗? – OhadR

回答

0

检查项目A的POM内本地资源库的.m2是否TESTLIB仍然提到。 尝试从.m2中删除项目A的文件夹并执行A和D的干净安装

1

A的版本是什么?如果它不是“SNAPSHOT”(换句话说,它是“RELEASE”;也就是说它不以“SNAPSHOT”结束),那么Maven不会用新的A更新其他项目B和C.

+0

A是一个快照。实际上,我可以看到A的新版本正在应用于B和C中。就包装到jar而言,'testlib'库包含在战争中。 – user3288346

+0

所以也许另一个JAR依赖于“testlib”? – OhadR

+0

我检查了'testlib'的jar文件存在于'target-server-side'文件夹中,我从它删除了,然后再次按照前面提到的步骤操作。它似乎工作。但你能帮我理解发生了什么吗? – user3288346