在eclipse3.3上進(jìn)行OSGI基礎(chǔ)平臺環(huán)境的搭建關(guān)鍵字: osgi
1. dependecies repo的建立。
我們需要在eclipse上搭建一個OSGI的集成開發(fā)環(huán)境,實際上就是構(gòu)建一個eclipse的目標(biāo)平臺(target),這個目標(biāo)平臺里面包括了一些 我們要勇于OSGI開發(fā)的所必須用到的插件(Bundle),此外,剔除掉了一些我們不需要的插件來達(dá)到一個最干凈,精簡的OSGI開發(fā)環(huán)境的搭建,這樣 就有利于我們在eclipse上執(zhí)行(run)或者調(diào)試(debug)一個方便的統(tǒng)一的OSGI開發(fā)環(huán)境來進(jìn)行我們的OSGI相關(guān)開發(fā)工作。要完成這個目 的,當(dāng)然第一步工作是按照我們自己的需要去定制一個插件集,然后在利用eclipse的構(gòu)建目標(biāo)平臺的功能(target definition)去關(guān)聯(lián)到我們定義的這個插件集上,來完成一個自定義的OSGI開發(fā)平臺的構(gòu)建。 這里我們還是利用一個名叫Maven Dependency Plugin的maven插件來實施我們的插件集合的構(gòu)建。關(guān)于這個插件的配置方法,相信官方網(wǎng)站上已經(jīng)做了非常詳盡的說明,這里由于我們只需要這個插件的Copying Project Dependencies功能,所以我們這里只簡要的講解一下這個功能的配置方法。 利用如下的一個模板配置你可以用來將配置在你的pom文件中的那些dependencies以及這些dependencies所依賴的dependencies拷貝到指定的目錄: xml 代碼
當(dāng)然你也可以通過設(shè)置excludeTransitive屬性為true來顯示的將pom中配置的dependencies所依賴的dependencies進(jìn)行拷貝。 xml 代碼
實際中,我們會一般的在pom中設(shè)置好我們這個OSGI環(huán)境所需要的一些bundles(插件),然后設(shè)置好outputDirectory(輸出目錄)假設(shè)是${project.build.directory},這個就是指代的這個工程下的target目錄,然后用maven的命令:maven package來進(jìn)行構(gòu)建。構(gòu)建完畢后一個符合我們自己需要的OSGI taget platform就設(shè)置好了。當(dāng)然在一些最基礎(chǔ)的OSGI核心bundle(比如org.eclipse.osgi)你就沒必要再去以這種方式構(gòu)建到target下了,因為你下下來一個eclipse的IDE后,它里面就包含了一些基本的OSGI核心包(eclipse就是一個OSGI產(chǎn)品),至于在POM中配置dependecies的方式來配置那些需要的bundles,那這些bundle來至哪里呢,這個可以參考我以前的博客中寫過得利用pax來進(jìn)行這項OSGI bundle的構(gòu)建工作。 <o:p> </o:p> 剩下來的步驟就是要把我們eclipse IDE的工作環(huán)境設(shè)到我們之前做好的這個OSGI bundles集合上來了。 首先在我們已經(jīng)構(gòu)建dependences集合的工程里面創(chuàng)建一個Target definition
先選擇New一個Target definition <o:p> </o:p> 父文件夾選擇我們的放了dependences的工程目錄,設(shè)置好target配置文件的文件名后,點擊完成,這樣一個target definition就建好了。然后對其做些配置 <o:p> 如果你已經(jīng)有一個基礎(chǔ)的eclipse環(huán)境(實際上就是個基礎(chǔ)的OSGI環(huán)境),那么就在Target Location中將這個Location設(shè)置進(jìn)來,此外再將我們剛才構(gòu)建的我們自需要的OSGI環(huán)境設(shè)置在Additional Locations里面,最后保存下這個文件,再點擊右上角的Set as Target Platform,那么我們的eclipse就可以立刻切換到我們自定義的OSGI開發(fā)環(huán)境中去了。 總結(jié):利用maven插件以及eclipse的target platform的結(jié)合,來構(gòu)建一個我們自需要的OSGI環(huán)境,然后實現(xiàn)IDE的target platform在這個target上的自由切換,有利于統(tǒng)一管理我們的OSGI開發(fā)平臺環(huán)境,對開發(fā)中要用到的bundles進(jìn)行了有效的積累和管理。 |
|
|