2014-06-27 33 views
0

我們希望使用Rascal在Eclipse工作區的Java項目集合中查找所有未使用的公共方法。我剛剛學會了如何使用createM3FromEclipseProject在Eclipse中創建一個Java項目模型並導航。但這隻考慮一個項目。如何在我的工作區中的所有Java項目中執行此分析?跨Eclipse項目分析Java代碼

+0

不知道更多關於您的項目,您可以簡單地爲每個項目執行分析並計算結果的交集。 – Hannes

回答

0

優秀的問題。您可以從每個項目中提取的模型,給予正確的Eclipse編譯器設置和一切,那麼你可以合併模式,以得到一個總體模型:

import lang::java::m3::Core; 

M3 composeJavaM3(loc id, set[M3] models) // the function to call 

這將允許你做一個跨項目分析上所產生的M3模型。

有一些注意事項,即如果兩個項目中都存在相同的合格類名,但實際上它們是不同的類,那麼合成函數會將它們映射到彼此之上。要解決這些問題,您首先必須做一些預處理(請參閱link函數),但我們尚未獲得相關經驗。

0

如果你是流氓舒適的編程,你可以做到以下幾點:

  1. 創建無賴是可以獲得一套項目工作區爲一組位置的java function。位置需要位於| project:// project_name |中格式和項目需要可訪問。
  2. 創建一個遍歷該集合的rascal函數,使用createM3FromEclipseProject創建模型,然後使用composeJavaM3將它們組合到單個模型中以執行分析。

如果不是,您可以創建一個問題here,我們可以將其添加到不穩定的版本。由於下面提到的警告,所以未添加。