如何将Maven依赖项作为OSGI捆绑包自动部署到JBoss中



我有一个部署独立OSGíApache ServiceMix应用程序的项目。它有很多依赖项,并且是用Maven构建的。现在我想将这个应用程序部署到JBoss AS中。我发现了一个有趣的Maven插件jboss-as-maven-pluginorg.jboss.as.plugins),可以部署任何东西。我使用maven-bundle-pluginorg.apache.felix)来构建我的捆绑包,它运行良好,但当我部署项目捆绑包时,部署失败,因为不满足依赖关系。

如何将所有依赖树与Maven目标自动绑定和部署?有可能吗?我的项目在pom.xml上声明了几十个依赖项,其中一些是我工作区中的其他项目。

目前我所知道的唯一解决方案是Karaf功能。您可以从pom依赖项中创建一个特征文件。

我发现jboss似乎支持子系统。这可能有助于指定运行应用程序所需的捆绑包。它似乎不是OSGi子系统规范,但对于jboss来说,这可能已经有所帮助了。对于OSGi规范5,有一个标准化的子系统规范,它可以提供一种跨容器的标准方法。

如果jboss支持OBR(OSGi捆绑存储库),那么您可以限制必须指定的依赖项的数量。

如果您的应用程序不使用OSGi,您可以考虑将应用程序打包为可在JBoss中部署的WAR。

然后,您需要使用web.xml来引导您的应用程序,例如使用Spring xml文件。

这里有一个骆驼战争的例子:http://camel.apache.org/servlet-tomcat-example.html

您可以使用org.apache.sling插件自动安装捆绑包

            <plugin>
                <groupId>org.apache.sling</groupId>
                <artifactId>maven-sling-plugin</artifactId>
                <executions>
                    <execution>
                        <id>install-bundle</id>
                        <goals>
                            <goal>install</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <slingUrl>http://localhost:8181/system/console/install</slingUrl>
                    <user>karaf</user>
                    <password>karaf</password>
                </configuration>
            </plugin>

您可以从Adobe网站找到详细的pom.xml:https://docs.adobe.com/docs/en/cq/5-6-1/developing/developmenttools/how-to-build-aem-projects-using-apache-maven.html

或http://www.cqblueprints.com/tipsandtricks/build-and-deploy-osgi/build-deploy-osgi-1.html

最新更新