1

我有一个部署独立 OSGí Apache ServiceMix 应用程序的项目。它有大量的依赖项,它是用 Maven 构建的。现在我想将此应用程序部署到 JBoss AS 中。我发现了一个有趣的 Maven 插件,叫做jboss-as-maven-plugin( org.jboss.as.plugins) 来部署任何东西。我使用maven-bundle-plugin( org.apache.felix) 来构建我的包,它工作正常,但是当我部署项目包时,部署失败,因为不满足依赖关系。

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

4

3 回答 3

1

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

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

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

于 2013-02-20T11:17:09.570 回答
0

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

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

这里有一个骆驼示例作为 WAR:http: //camel.apache.org/servlet-tomcat-example.html

于 2013-02-22T10:59:43.287 回答
0

你可以使用 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>

您可以从 Adob​​e 网站找到详细的 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

于 2016-03-22T09:24:38.447 回答