Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Maven模块化项目中查找未使用的代码_Java_Maven 2_Module - Fatal编程技术网

Java 在Maven模块化项目中查找未使用的代码

Java 在Maven模块化项目中查找未使用的代码,java,maven-2,module,Java,Maven 2,Module,我必须清理一个旧项目,这里的一般知识是,该项目包含许多我们可以删除的未使用的代码。这将节省一些麻烦,并使维护更容易 我发现EclipseCoreTools插件看起来是一个很棒的工具,但在我们的例子中,我们有一个Maven2项目,它分为3个模块。 我似乎无法在父项目上运行“查找未引用成员”,当我在其中一个模块上运行它时,它完全忽略了其他模块可能正在使用某些公共成员的事实 有人克服了这个问题吗?还是找到了另一种方法 谢谢 当我在其中一个模块上运行它时,它完全忽略了一个事实,即其他模块可能正在使用一些

我必须清理一个旧项目,这里的一般知识是,该项目包含许多我们可以删除的未使用的代码。这将节省一些麻烦,并使维护更容易

我发现EclipseCoreTools插件看起来是一个很棒的工具,但在我们的例子中,我们有一个Maven2项目,它分为3个模块。 我似乎无法在父项目上运行“查找未引用成员”,当我在其中一个模块上运行它时,它完全忽略了其他模块可能正在使用某些公共成员的事实

有人克服了这个问题吗?还是找到了另一种方法

谢谢

当我在其中一个模块上运行它时,它完全忽略了一个事实,即其他模块可能正在使用一些公共成员

是的,这就是问题所在,这就是为什么没有真正确定的方法来查找中@cletus提醒的未使用的代码

话虽如此,像PMD(及其规则)这样的工具可能会有所帮助。IDE(Java代码检查在社区版中完全可用)和Eclipse也对此提供了很好的支持

对于IntelliJ,请查看:

由于Intellij IDEA代码洞察引擎背后的内部索引的改进,Maia将能够立即突出显示整个项目中未使用的一些java类、方法和字段

对于Eclipse,有一个插件:

UCDetector(不需要的代码检测器)是一个开源eclipse插件工具,用于查找不需要的(死的)公共java代码。它还试图使代码成为最终的、受保护的或私有的


但我承认,我不确定这些解决方案是否真的能跨模块工作。在这种情况下,我的建议是将所有代码放在一个“看门人”项目中(是的,这很难看,但很好…),并在其上运行工具(并根据获得的结果清理模块)。

我使用核心工具插件在许多不同的maven模块中查找未使用的代码。必须正确设置每个项目的构建路径,以便Eclipse知道项目之间存在依赖关系。如果您使用m2eclipse插件导入项目,它将自动设置这些项目


我认为核心工具插件的工作方式是,它自动化了“调用层次结构”视图执行的过程。选择一个方法并运行“调用层次结构”(ctrl-alt-H),如果没有调用方,则核心工具应将该方法标记为未调用。

这是一个非常好且详细的答案。谢谢你,帕斯卡。