2009-08-07 57 views
2

我正在爲Eclipse中的Java代碼使用增量構建器。 Eclipse提供了一個ResourceDelta,它告訴我自上次構建以來哪些資源發生了變化。但是,我想要獲得更詳細的信息,例如什麼方法或什麼字段定義改變了。在「與...相互比較」視圖中似乎有類似於我想要的功能。但是,此代碼與構建引擎完全斷開,似乎與ResourceDeltas不兼容。什麼是一個很好的方法來弄清楚我想要什麼?我可以看到的最佳解決方案是比較兩個AST,但我也找不到任何內置支持。Eclipse中兩個AST的結構比較

回答

2

JavaCore確實通過IElementChangedListenerIJavaElementDelta接口提供此信息。這裏有一個快速的代碼示例,讓您開始:

JavaCore.addElementChangedListener(new MyJavaElementChangeReporter(), ElementChangedEvent.POST_RECONCILE);

的更多細節Manipulating Java code可從JDT插件開發者指南。

+1

這看起來就像我需要的東西。非常感謝! – user66237 2009-08-18 10:34:52

+0

感謝您的信息。我和@ user66237的情況類似,但是我正在尋找細微的變化。也就是說,我正在設法設置IJavaElementDelta.F_CONTENT標誌,以準確獲取更改。例如,我想知道方法體中是否有新的方法調用。如果是這樣,我想知道哪個方法正在被調用。有沒有什麼辦法可以通過這個API來實現這一點? – 2010-11-11 19:19:33