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

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

圖2-4 用Outline view查看應(yīng)用了特定建議的類或aspect

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

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

圖2-7 運(yùn)行代碼5.1時在Console view里輸出的結(jié)果
AJDT包含的豐富特性和擴(kuò)展甚至可以寫整整一章內(nèi)容。花點(diǎn)時間看看AJDT所提供的參數(shù)和特性,這樣當(dāng)你在使用本書其它代碼的時候,你可以迅速把握哪些對你最有用的特性。
參考
Eclipse and The Eclipse Cookbook中的代碼2.9 展示了如何利用Ant進(jìn)行自動化編譯;你可以在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.