文章工具
問題
你想要在Eclipse下編譯AspectJ項目。
沒有使用Eclipse或者Ant?
假如你在編寫基于ApsectJ的aspect-oriented程序的時候沒有使用Eclipse或者Ant,建議你跳過此章,并從下一章開始學習部署AspectJ程序的常用方法。
解決方案
下載并在Eclipse里安裝AspectJ Development Tools (AJDT)插件。
版權聲明:任何獲得Matrix授權的網站,轉載時請務必保留以下作者信息和鏈接
作者:jerric(作者的blog:http://blog.matrix.org.cn/page/jerric)
原文:http://www.matrix.org.cn/resource/article/44/44423_Eclipse+AspectJ.Html
要害字:Eclipse;AspectJ
討論
和Eclipse項目一樣,AspectJ也是一個開源項目,同時它為集成開發環境提供了最豐富的AspectJ插件。你可以在http://www.eclipse.org/ajdt 下載AspectJ的Eclipse插件,并在那找到相應的說明。
最佳的實踐經驗是下載最新版的AspectJ,以及相應最新的AJDT和支持它的Eclipse。假如你不確定該下載什么,你可以在AJDT的下載頁面找到一個兼容性列表,它可以幫助你做選擇。
假如要檢查AJDT插件是否已正確安裝,在Eclipse的菜單里選擇File  New 
PRoject…,在New Project對話框里應該有一個ApsectJ項目的選項,如圖2-1所示。
Eclipse 3 Mx版本的缺省設置是隱藏所有附加向導。你可以選中Show All Wizards選擇框以顯示New AspectJ Project的選項。
在New Project對話框中選擇AspectJ Project選項,然后點擊Next,并且利用接下來的幾步來設置一個新的AspectJ項目。
一旦項目向導完成,Eclipse里的工作界面會建議你切換到
java Perspective,并且,假如你是第一次使用這個向導,它會要你確認幾個AJDT的引用。推薦使用Java Perspective,并且接受默認的項目參數。完成后你的項目會如圖2-2所示。
AJDT 1.1.7及以上版本默認下會自動對你的aspects和java代碼進行增量編譯;假如你覺得這影響到你的整體開發的效率,你可以關掉這個功能。
在新ApsectJ項目創建的同時,它已被自動編譯好了。你也可以點擊Build AspectJ Project按鈕 ,對項目進行強制編譯。

圖2-1 創建一個新的AspectJ項目
圖2-2 在Eclipse的Java Perspective里顯示的AspectJ項目的源代碼及jar文件
你的程序應該已經編譯好并可以運行了。在此之前,你可以留心一下AJDT對Java Perspective的一些擴展。最顯著的是在Outline view里,當你選中一個aspect或者advised類,會有新的區域顯示已經應用了建議的地方。更多信息的例子如圖2-4和2-5所示。

圖2-4 用Outline view查看應用了特定建議的類或aspect

圖2-5 利用Outline view查看在一個特定類上應用了哪些建議
AJDT還提供了另一個視圖以圖形化地顯示你的aspects如何應用到你的項目之中。選擇Window  Open Perspective  Other…,并選擇Aspect Visualization perspective以打開那個視圖。這個新視圖里會列出你的類里已應用的aspects,如圖2-6所示。

圖2-6 已選中一個示例項目的AJDT的Aspect Visualization perspective
切換回Java perspective,并且運行你的程序。在Eclipse里運行一個AspectJ程序和運行一個普通的Java程序一樣簡單。在Java perspective里選擇包含public static void main(String[] args)方法的類,然后在主菜單里選擇Run  Run As  Java
application。Eclipse會在選中的類里查找并執行main()方法。命令行輸出結果會顯示在Console view里,如圖2-7所示。

圖2-7 運行代碼5.1時在Console view里輸出的結果
AJDT包含的豐富特性和擴展甚至可以寫整整一章內容。花點時間看看AJDT所提供的參數和特性,這樣當你在使用本書其它代碼的時候,你可以迅速把握哪些對你最有用的特性。
參考
Eclipse and The Eclipse Cookbook中的代碼2.9 展示了如何利用Ant進行自動化編譯;你可以在http://www.eclipse.org/ajdt 的User Resources: Documentation鏈接獲得AJDT插件完整的用戶指南。Borland JBuilder的AspectJ插件可以在http://sourceforge.net/projects/aspectj4jbuildr/ 下載;Sun的NetBeans的AspectJ插件可以在http://sourceforge.net/projects/aspectj4netbeans/ 下載。參考Steve Holzner (O’Reilly) 的Eclipse and The Eclipse Cookbook.