问题 有没有办法在Flex Builder中找到未引用的代码?


我们有几个Flex项目,其中一个刚刚被重构。我想知道是否有一种简单的方法来判断哪些类和函数(如果有的话)不再被使用了?

我发现我们肯定有一些未使用的代码,因为在整个项目中运行ASDoc会报告一些编译错误,这些错误不会被Flex Builder报告(暗示这些类不再被使用)。我希望找到一个更强大和完整的方法,最好是一个可以在功能级别工作的方法。


3730
2018-03-22 11:36


起源



答案:


我丑陋的黑客:

使用 swfdump 来自的工具 SWFtools,从您的swf(全部)转储反汇编:

swfdump -a my.swf > dump

获取所有课程的列表:

find . -name "*.as" -exec basename {} .as \; > classes
find . -name "*.mxml" -exec basename {} .mxml \; >> classes

将一个列表应用于另一个:

for class in $(<classes) ; do grep -q \\\<$class\\\> dump || echo $class ; done

我在Windows上使用Cygwin执行此操作。


12
2018-04-01 14:16



我以前从未看过SWFTools。希望我有...... +1 - Ross Henderson
有没有办法写入文件而不是回声? - Maurits de Boer
@MauritsdeBoer:将输出重定向到文件,就像对任何命令一样。 - Andrew Aylett


答案:


我丑陋的黑客:

使用 swfdump 来自的工具 SWFtools,从您的swf(全部)转储反汇编:

swfdump -a my.swf > dump

获取所有课程的列表:

find . -name "*.as" -exec basename {} .as \; > classes
find . -name "*.mxml" -exec basename {} .mxml \; >> classes

将一个列表应用于另一个:

for class in $(<classes) ; do grep -q \\\<$class\\\> dump || echo $class ; done

我在Windows上使用Cygwin执行此操作。


12
2018-04-01 14:16



我以前从未看过SWFTools。希望我有...... +1 - Ross Henderson
有没有办法写入文件而不是回声? - Maurits de Boer
@MauritsdeBoer:将输出重定向到文件,就像对任何命令一样。 - Andrew Aylett


看看 Flex PMD 工具。它最近在测试版中发布,但我们已经在工作中使用了几个星期,它看起来效果非常好。


3
2018-03-22 15:08



看起来不错,感谢链接:)。 - Andrew Aylett
@rhtx:不幸的是,Flex PMD似乎没有找到未引用的代码 - 它似乎只有查找未使用的私有函数的规则。除非我错过了什么? - Andrew Aylett


请注意,Flex SDK附带的swfdump工具将代替上面列出的bash脚本中的SWFTools版本。


1
2018-04-07 22:14





这并没有真正回答你的问题,但你可以通过选择它(在代码编辑器中)并按下Ctrl + Shift + G来找到对单个类,变量或函数的引用。我认为这是您目前可以从Flex / Flash Builder中获得的。


0
2018-03-22 12:57



我知道这件事。一些未使用的文件相互引用并没有帮助 - 它们只是没有从应用程序本身引用。 - Andrew Aylett