匯出Plugin的一點心得

來源:互聯網
上載者:User

Eclipse升級到了3.1以後,在Plugin manifest editor上做了相當大的改動,可能是剛剛完全支援OSGi的緣故吧,感覺這個editor的小bug挺多的。比如很多情況下表示dirty的星號不會消失,有時會彈出帶紅叉的對話方塊等等,不過我相信在eclipse 3.2版本裡會得到解決,因為關於它的bug report已經不少了。

除了一些小bug以外,我發現在3.1裡匯出一個Plugin也變得有些“莫名其妙”,最近經過實驗摸索,得到以下一些心得:

1、開發plugin的時候,不要在project properties的java build path裡做任何修改,應該在plugin設定檔的dependencies、runtime和build這幾個部分添加。

2、在build頁上面部分,Library的預設情況是".",我發現有時候指定為"."會造成class不被輸出。比較保險的方法是指定一個.jar名字,對應的folder還是src/,勾中下面的Include selected library選項。

3、在build頁中間部分指定要輸出的檔案,一般除了預設的那些以外,還要包含如lib、icons、log4j.properties等目錄或檔案。

4、在build頁下面部分,也就是“Extra Classpath Entries”,指定你的應用程式用到的外部包,例如log4j.jar等等。

5、需要注意的是,如果Library裡指定了abc.jar,則輸出時會產生abc.jar這個檔案,但Plugin在運行時會報ClassNotFound異常,原因是你沒有把abc.jar指定到這個Plugin的classpath裡。解決的辦法是在Manifest.mf檔案的Bundle-ClassPath項裏手動加上abc.jar,例如“Bundle-ClassPath: abc.jar,lib/log4j-1.2.11.jar”這樣。

6、若你有兩個Plugin,多個的情況也一樣,假設B依賴A,那麼不僅在B的dependencies裡要加上A,還要保證A的Runtime頁裡export了B所需的所有包,也就是在A的Manifest.mf檔案裡指定正確的“Export-Package”項。

7、輸出為目錄或輸出為單個jar包在運行時沒有什麼區別,感覺jar包方便一些,輸出的jar包名就是項目名。

希望能有協助。
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.