2017-04-05 82 views
0

我已經用Maven構建了一個相對簡單的jar-with-dependencies,它比它看起來要大得多。大約20MB,爲了弄清楚佔用了那麼多空間,我做了以下工作:爲什麼我的罐子這麼大?

首先,我跑了mvn dependency:tree。然後,我檢查了我的.m2緩存中依賴關係樹中每個jar的大小。如果我把所有這些大小加起來,它就達到8MB左右。我怎樣才能找出其他12MB來自哪裏?

有一件事我通過我尋找的.m2注意到的,對於許多依賴的,他們會是這樣的:

total 5224 
-rw-r--r-- 1 user 289B Jul 25 2016 _remote.repositories 
-rw-r--r-- 1 user 1.7M Jul 25 2016 commons-compress-1.12-javadoc.jar 
-rw-r--r-- 1 user 407B Jul 25 2016 commons-compress-1.12-javadoc.jar.lastUpdated 
-rw-r--r-- 1 user 40B Jul 25 2016 commons-compress-1.12-javadoc.jar.sha1 
-rw-r--r-- 1 user 427K Jul 25 2016 commons-compress-1.12-sources.jar 
-rw-r--r-- 1 user 407B Jul 25 2016 commons-compress-1.12-sources.jar.lastUpdated 
-rw-r--r-- 1 user 40B Jul 25 2016 commons-compress-1.12-sources.jar.sha1 
-rw-r--r-- 1 user 432K Jul 22 2016 commons-compress-1.12.jar 
-rw-r--r-- 1 user 407B Jul 22 2016 commons-compress-1.12.jar.lastUpdated 
-rw-r--r-- 1 user 40B Jul 22 2016 commons-compress-1.12.jar.sha1 
-rw-r--r-- 1 user 13K Jul 22 2016 commons-compress-1.12.pom 
-rw-r--r-- 1 user 407B Jul 22 2016 commons-compress-1.12.pom.lastUpdated 
-rw-r--r-- 1 user 40B Jul 22 2016 commons-compress-1.12.pom.sha1 

什麼-sources和-javadoc罐子?那些包含在我的超級罐子裏嗎?因爲如果我的每個依賴項都使用-javadoc jar而不是標準jar,那麼這會讓我更接近20MB。

+0

如果你使用jar -with-dependencies也意味着包括所有的傳遞依賴......請記住...... – khmarbaise

+0

是的,我明白,但'mvn dependency:tree'仍然應該顯示這些依賴關係。我試圖找出所有這些其他的依賴來自哪裏。 – user1902853

回答

1

運行

jar tvvf <your_simple-jar-with-dependencies.jar> 

或者,與任何兼容ZIP歸檔打開它,並檢查其內容來確定被包含的內容。或者,運行maven -X以獲取更多的運行時信息。

+0

好的,我做到了,看到一些不應該包含的東西。我怎麼能看到那些來自哪裏,如果他們不在我的依賴樹中呢?另外,如果我總結列出的每個類文件的大小,它總計大約50M?額外來自哪裏? – user1902853