Rob*_*bAu 6 java code-coverage jar
我有一个拥有一百万个罐子的项目(好吧,很多).他们是由maven来找我的,我只使用了一小部分功能.为了清洁起见,我想知道我能做的罐子.
我的第一个想法是使用代码覆盖工具运行程序,然后找到被触摸的类.
有没有人这样做过?或者是否有更聪明的技巧来实现同样的目标?
您可以使用 VM 选项运行该项目-verbose:class。这将为所有加载的类打印它们的加载位置。使用一些智能解析应用程序/grep/regexp 将允许您将 jar 名称过滤为一组唯一的条目,并告诉您使用了哪些条目。
我认为这会更容易,因为它会自动告诉您是否使用了某个类,如果使用了,则在哪个 jar 中。
当然,这个问题和代码覆盖率的问题在于,您可能会删除一个仅在某些特殊情况下使用的 jar,但如果您删除了一两个太多,编译器会抱怨,留下(大多数情况下不是)太复杂了)查找类位于哪个 jar 的任务。
使用linux时可能的建议:
java -verbose:class <your startup command here> | grep "\[Loaded" | grep -o "from .*\]" | cut -c 6- | sort | uniq
如果您不使用Linux,则保存到文件,获取Linux机器并在Linux上运行(或使用某些东西在Windows上运行bash命令)
| 归档时间: |
|
| 查看次数: |
531 次 |
| 最近记录: |