给定一个现有的JSP项目,我想对项目“视图”部分的复杂性/大小有所了解。到目前为止,这是我所做的:
因此,现在我有了一个页面列表以及导入到这些页面中的片段,以及它们的大小以及上次编译和更改的时间。
但是我真正需要知道的是页面的复杂程度。其中一些页面上有很多Java代码。这是一个很大的项目,因此要浏览每个页面和每个页面的大小将很乏味并且可能不那么准确。
我打算编写另一台扫描器来测量<%和%>之间的代码,但是我想知道是否有某种指标生成器已经可以做到这一点。我希望它输出页面有多“大”以及页面上代码有多“大”。关键是要分隔小页面,中页面,大页面和大页面,因此绝对度量值不如相对度量值重要。
编辑: 编写了另一台扫描程序以计算JavaScript行,Java(Scriptlet)行,HTML行和taglib使用实例的数量。因此,通过使用扫描仪的结果,我得到了一些表明“复杂性”的参数。不是很干净,但是现在还可以。
因此,问题在于,您的Java代码中散布着html,因此没有任何标准指标工具可以使用。
并不是现成的,但是我们的源代码搜索引擎可能会非常接近。这是一种通过使用语言准确的词法提取为源代码建立索引来搜索大型代码库的工具。这里的相关性是它计算索引文件的SLOC,注释计数,Halstead和Cyclomatic度量,因此,如果您只是忽略搜索功能,就可以得到度量。指标生成到XML文件(每个源文件一个“记录”),因此您可以对它们进行任何进一步的处理。请参阅链接的网页上的指标讨论。
尽管我们有JSP词法分析器,但尚未在搜索引擎中对其进行测试。我们已经建立了数十个词法分析器,因此这对于我们来说应该很容易做到(并且我们很乐意这样做)。那将直接产生您想要的答案。
如果您不想走这条路,可以遵循一个简单的想法,即提取<%和%>之间的代码,将其转储到与原始JSP文件平行的文件中,然后将该代码交给搜索引擎通过其(生产的)搜索引擎的Java lexeme提取器,以这种方式获取指标。这些词法分析器在文件格式错误方面非常强大,因此,提取的Java片段可能总体上不是很合法,这一事实也不会打扰到它。