Pax Umbrella Project是為發展OSGi Tool的專案(Pax umbrella譯作大同傘)。提供不少獨立的工具,大概以Pax Construtct和Pax Runner為主。Pax Construct負責建構OSGi相關專案如Bundle、Module、Service等;而Pax Runner則是可以建立OSGi container,可以選擇Felix(預設)、Equinox或是其它的OSGi container等,Pax Runner還真是跟流行,作用和SLF4J之於Logger、JPA之於ORM差不多。
自http://wiki.ops4j.org/display/paxconstruct/Download下載最新的Pax Construct(目前最新版是1.4),壓縮後,增加Pax Construct的Home/bin的目錄到Path。以下是部份script用法:
【pax-create-project】
建立一個Pax專案,不帶參數時會依次向你要求Maven所需的group ID、artifact ID、version,或是直接帶參數如下:
pax-create-project -g groupId -a artifactId [-v version] [-o] [—mvnOpts ...]
假設artifactId是my,執行完後會產出my這個子目錄,在Eclipse去import Maven Project選擇my目錄,然後只勾選最頂層的pom.xml(子pom.xml則不要勾選),如此就能在Eclipse建立一個名為my的project。
【pax-version】
這是執行Pax Runner的script,可以在command mode下執行,預設Run Felix。也可以改變為Equinox,在my目錄下的pom.xml做以下的修改:
1.在build/plugins標籤增加如下,因Maven預設JRE是1.4,是故要改成1.5。
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
2.修改maven-pax-plugin設定使用Equinox,有點長:
<plugin>
<groupId>org.ops4j</groupId>
<artifactId>maven-pax-plugin</artifactId>
<version>1.4</version>
<configuration>
<!--
| some example Pax-Runner settings
<provision>
<param>platform=felix</param>
</provision>
-->
<provision>
<param>--platform=equinox</param>
<param>--profiles=minimal</param>
</provision>
</configuration>
<executions>
<execution> <!-- 原本被註解 -->
<id>ide-support</id>
<goals>
<goal>eclipse</goal>
</goals>
</execution>
</executions>
</plugin>
這樣執行pax-version就會改為Equinox。而不管是Felix或Equinox,也可以使用Maven指令在Eclipse啟動OSGi container。其指令是mvn pax:version。