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