簡體   English   中英

如何檢測企業 Java 項目(Java + JSP + Javascript)中的死代碼?

[英]How can I detect dead code in an enterprise Java project (Java + JSP + Javascript)?

有誰知道在 Java EE 項目中檢測死代碼的工具?

我已經研究了很多工具,它們可以很好地處理純 Java 項目,但似乎沒有什么能真正處理包括 JSP 和 Javascript 文件的項目。 For example, detecting that a Java method is in use because it's being called from a JSP, or detecting that some JSP file that previously was used as an AJAX request is no longer called from any Javascript.

謝謝。

現實生活中的采樣呢? JaCoCo代理插入到您的應用程序中,運行並使用一段時間。 如果您有徹底的功能測試,請運行它們。 如果您有一個測試人員團隊,讓他們點擊您的應用程序。 JaCoCo 將同時記錄所有執行的行(它用於代碼覆蓋)。

如果某些行在很長一段時間內沒有執行(請記住,您必須觸摸應用程序中每個可能的屏幕、調用、路徑和分支),您應該檢查它們是否真的死了(或者您可能只是忘記運行您的在此特定配置中的應用程序)。

可以理解這是非常脆弱的,但我認為你不會發現任何自動的東西。

我建議使用 JVM 標志-verbose:class ( http://java.dzone.com/articles/how-use-verbose.options-java ) 它將啟用有關由 JVM 加載的類的日志記錄信息,例如。

[Loaded java.lang.Object from C:\Program Files\Java\jdk1.7.0_04\jre\lib\rt.jar]
[Loaded java.io.Serializable from C:\Program Files\Java\jdk1.7.0_04\jre\lib\rt.jar]
[Loaded java.lang.Comparable from C:\Program Files\Java\jdk1.7.0_04\jre\lib\rt.jar]
[Loaded java.lang.CharSequence from C:\Program Files\Java\jdk1.7.0_04\jre\lib\rt.jar]

如果某些 class 在很長一段時間內未加載,則很有可能它未被使用。

當然,此解決方案只會為您提供有關未使用類的信息,但您不必使用任何外部庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM