[英]Use Maven to build OSGi application
我想构建一个符合OSGi标准的多模块应用程序,在编译后我在3个文件夹中拥有所有必需的包。 我正在使用maven-bundle-plugin和maven-scr-plugin来创建捆绑包。
我想要的是用一个命令在一个osgi容器(Equinox)中运行这个应用程序,希望使用一个脚本。 为此我相信我必须创建一个config.ini文件,列出应用程序中的所有bundle。
有没有办法在Maven编译时自己生成这个? 或者有更好的方法来获取某些文件夹结构中的所有包,以便应用程序可以立即运行?
您可以在OSGi Maven项目中使用maven-pax-plugin和PaxRunner 。 查看本教程了解详细信息。
<plugin>
<!-- Pax Runner Maven plugin -->
<groupId>org.ops4j</groupId>
<artifactId>maven-pax-plugin</artifactId>
<version>1.4</version>
<configuration>
<!-- Pax Runner version -->
<runner>1.4.0</runner>
<!-- OSGi framework type (equinox, felix, knopflerfish) -->
<framework>equinox</framework>
<provision>
<param>--log=debug</param>
<param>--workingDirectory=target/runner</param>
<!-- bundles that should be installed -->
<param>mvn:org.osgi/org.osgi.compendium/4.1.0@2</param>
<param>mvn:org.apache.felix/org.apache.felix.eventadmin/1.2.2@3</param>
<param>mvn:org.apache.felix/org.apache.felix.log/1.0.0@3</param>
</provision>
</configuration>
</plugin>
我写了一个maven插件,默认情况下在目标下创建一个dist文件夹,其中包含一个带有所有maven依赖项的即用型equinox。 Equinox包含在YAJSW中,因此您可以将生成的equinox包用作测试服务器。 请参阅插件使用页面: http : //www.everit.org/eosgi-maven-plugin/
文档有点差,所以如果您有任何疑问,请不要犹豫。
一个简短的分步指南:
编辑 :
不久将推出一本新的食谱,其中包含更详细的分步指南。 网址是http://cookbook.everit.org
看看Tycho及其不同的包装类型(例如eclipse-application)。
http://wiki.eclipse.org/Tycho/Packaging_Types
它用于许多商业和开源应用程序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.