Tai-e(中文:太阿;發音:[ˈtaɪə:])是一種新的Java 靜態分析框架(有關詳細信息,請參閱我們的ISSTA 2023 論文),它的特點可以說是我們提出的新穎框架中的“最佳”設計以及 Soot、WALA、Doop 和 SpotBugs 等經典框架的框架。 Tai-e易學、易用、高效且可擴展性強,讓您可以輕鬆地在其基礎上開發新的分析。
目前,Tai-e提供以下主要分析組件(更多分析正在進行中):
clone()
偵測器Tai-e採用Java開發,可運行在Windows、Linux、macOS等主流作業系統上。
出於對開發人員的禮貌,我們希望您在研究工作中引用 ISSTA 2023 描述 Tai-e 框架的論文:
天壇和月麗。 2023. Tai-e:利用經典的優秀設計,開發人員友善的 Java 靜態分析框架。第 32 屆 ACM SIGSOFT 國際軟體測試與分析研討會 (ISSTA '23) 會議記錄,2023 年 7 月 17-21 日,美國華盛頓州西雅圖 (pdf, bibtex)。
最簡單的方法是從 GitHub Releases 下載。
或者,您可以根據原始程式碼自己建立最新的 Tai-e。這可以透過 Gradle 輕鬆完成(確保您的系統上有 Java 17(或更高版本))。你只需要執行指令gradlew fatJar
,然後就會在tai-e/build/
中產生可運行的 jar,其中包含 Tai-e 及其所有相依性。
Tai-e 被設計為獨立工具,但您也可以選擇將其作為依賴項包含在專案中。它在 Maven 儲存庫上可用,可讓您使用 Gradle 和 Maven 等建置工具輕鬆地將其整合到您的 Java 專案中。我們維護 Tai-e 的穩定版本和最新版本,以下是 Gradle 和 Maven 腳本格式的對應座標:
對於搖籃:
dependencies {
implementation( " net.pascal-lab:tai-e:0.2.2 " )
}
對於Maven:
< dependencies >
< dependency >
< groupId >net.pascal-lab</ groupId >
< artifactId >tai-e</ artifactId >
< version >0.2.2</ version >
</ dependency >
</ dependencies >
對於搖籃:
repositories {
mavenCentral()
maven { url = uri( " https://s01.oss.sonatype.org/content/repositories/snapshots/ " ) }
}
dependencies {
implementation( " net.pascal-lab:tai-e:0.5.1-SNAPSHOT " )
}
對於Maven:
< repositories >
< repository >
< id >snapshots</ id >
< name >Sonatype snapshot server</ name >
< url >https://s01.oss.sonatype.org/content/repositories/snapshots/</ url >
</ repository >
</ repositories >
< dependencies >
< dependency >
< groupId >net.pascal-lab</ groupId >
< artifactId >tai-e</ artifactId >
< version >0.5.1-SNAPSHOT</ version >
</ dependency >
</ dependencies >
您可以在 Gradle 或 Maven 腳本中使用這些座標,將所需版本的 Tai-e 包含在您的專案中。
我們在參考文件中提供了 Tai-e 的詳細信息,涵蓋了 IntelliJ IDEA 中的設定、命令列選項以及新分析的開發等各個方面。
請注意,上述參考文件適用於最新版本的 Tai-e。如果您需要特定穩定版本的文檔,請參閱文檔索引。此外,文件包含在儲存庫中,並與原始程式碼一起維護。您可以透過瀏覽 docs/en 目錄(從 index.adoc 開始)來存取特定版本 Tai-e 的參考文件(採用 AsciiDoc 格式)。這允許您存取 Tai-e 的版本特定文件。
除了參考文件之外,Tai-e 的 Javadocs 也可作為有用的參考資源。
由於我們正在積極開發和更新 Tai-e,因此我們在 CHANGELOG 中記錄了我們所做的顯著更改,尤其是新功能和重大更改。如果您在更新 Tai-e 後發現有問題,也許您可以查看 CHANGELOG 以獲取有用的信息。
此外,我們也開發了Tai-e的教育版,其中精心設計了8個程式設計作業,有系統地訓練學習者使用各種靜態分析技術來分析真實的Java程式。教育版與Tai-e共享大量程式碼,因此做作業是熟悉Tai-e的好方法。