Java 为什么我的罐子这么大?

Java 为什么我的罐子这么大?,java,maven,Java,Maven,我有一个相对简单的jar,它的依赖项是用Maven构建的,比看起来应该的要大得多。它大约是20MB,为了弄清楚是什么占用了这么多空间,我做了以下工作: 首先,我运行了mvn dependency:tree。然后我在.m2缓存中检查依赖关系树中每个jar的大小。如果我把所有这些尺寸加起来,大约是8MB。我怎样才能知道其他12MB是从哪里来的 我在查看.m2时注意到的一点是,对于许多依赖项,它们将有如下内容: total 5224 -rw-r--r-- 1 user 289B Jul 25

我有一个相对简单的jar,它的依赖项是用Maven构建的,比看起来应该的要大得多。它大约是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 jar?这些包括在我的uber罐中吗?因为如果我的每一个依赖项都使用-javadoc jar而不是标准jar,那么我就更接近20MB。

Run

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

或者,使用任何与zip兼容的archiver打开它,并检查内容以确定包含的内容。或者,使用
-X
运行maven以获得更广泛的运行时信息。

好的,我这样做了,并且看到了一些不应该包含的内容。如果它们不在我的依赖关系树中,我怎么知道它们来自哪里?另外,如果我把列出的每个类文件的大小加起来,它总共大约有50万个?额外的内容从何而来?如果使用jar和依赖项,意味着还包括所有可传递的依赖项……请记住……是的,我理解,但是
mvn依赖项:tree
仍应显示这些依赖项。我试图找出所有其他依赖项的来源。