1. The repository XML Descriptor
在POM文件组中指定打包部署后的Bundle所存放的本地仓库:
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.3.4</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-Category>sample</Bundle-Category>
<Bundle-SymbolicName>${artifactId}</Bundle-SymbolicName>
<Export-Package>
com.packtpub.felix.bookshelf.inventory.api
</Export-Package>
</instructions>
<remoteOBR>repo-rel</remoteOBR>
<prefixUrl>file:///C:/projects/felixbook/releases</prefixUrl>
<ignoreLock>true</ignoreLock>
</configuration>
</plugin>
执行mvn clean deploy 命令后在C:/projects/felixbook/releases目录下自动生成:repository.xml文件,见附件。
说明:该仓库包含许多的资源以方便下载,其中resource的uri属性指定了资源下载的路径。
2. Using the OBR scope commands
Gogo命令Bundel 注册了许多命令用于与OBR服务进行交互,常见的命令有:
2.1 obr:repos,用于管理ORB服务的repository.
help obr:repos,查看该命令的用法。
repos add file:///C:/projects/felixbook/releases/repository.xml,用于registor repository
with the OBR service;
也可以在config.properties中通过逗号分隔配置多个repository.
repos remove file:///C:\projects\felixbook\releases,用于移除注册的repository.
repos list,用于列出当前已经注册的repository.
2.2 obr:list,用于查找已经注册在仓库中的Bundel并显示Bundle的详细信息。
list -v book
显示仓库中bundle名称中包含book的Bundle.
2.3 obr:info,用与重新找到或显示仓库中一个或多个Bundle的可用信息。
obr:info 3
显示Apache Felix Gogo Shell Runtime Bundle的相关信息。
2.4 obr:deploy,用于从仓库中下载Bundle,并将其安装至Felix 实例中。
如:deploy -s "Bookshelf Service Ch6"
obr:source和obr:javadoc,用于下载Bundle的Source和JavaDoc文档至本地目录中。
2.5 Updating bundles in the repository
命令:repos refresh file:C:/projects/book/releases/repository.xml,将C:/projects/book/releases
目录下 的repository.xml添加至OBR Service;
命令:repos refresh,将显示当前Felix实例中的repository,默认显示http://felix.apache.org/obr/releases.xml。