如何通过命令提示符或maven命令将OSGI bundle部署到CQ5系统控制台

时间:2014-10-30 15:16:49

标签: console maven-3 cq5 aem osgi-bundle

我有一个项目要求从命令提示符或maven命令在CQ5系统控制台中部署OSGI包(打包为JAR)。

我在寻找什么 - 有什么办法,我可以直接使用命令提示符或maven命令将我打包的可用OSGI捆绑包部署到CQ5系统控制台。

我尝试了什么 - 我找到了一种可以通过“cURL”实现这一目标的方法,下面是命令:

curl -u admin:admin -F action=install -F bundlestartlevel=20 -F bundlefile=@"C:\osgi-work\demo-file-search-bundle-1.0-SNAPSHOT.jar" http://localhost:4502/system/console/bundles

但是根据要求,我不能限制用户首先安装“cURL”然后运行命令。

是否有任何解决方法可以将我的OSGI捆绑包直接安装到CQ5控制台管理器。

3 个答案:

答案 0 :(得分:2)

如果您使用Maven构建捆绑包,则可以包含Maven Sling Plugin

假设您拥有POM(或settings.xml)中包含的正确属性,则可以简单地调用mvn sling:install将该软件包安装到Felix中。

您还可以使用多个配置文件,例如:

mvn sling:install -P development
mvn sling:install -P qa

假设每个配置文件都包含该环境的URL&所需的证书。

答案 1 :(得分:2)

除了maven-sling-plugin之外,您还可以将包和内容包复制到名为" install"的文件夹中。在CQ的JCR存储库中,前提是该文件夹位于/apps下且不超过4或5级(我不记得确切的数字)。

例如,通过WebDav安装JCR存储库(默认情况下为http://localhost:4502),创建名为/apps/yourstuff/install的文件夹并在其中复制捆绑包将导致Apache Sling OSGi安装程序安装它们,就像是通过OSGi控制台发生的。安装程序仅考虑捆绑软件的最新版本,以防以这种方式提供多个副本。

答案 2 :(得分:1)

你试过mvn -P autoInstallBundle吗?您需要在pom文件中添加autoInstallBundle配置文件:

       <profile>
        <id>autoInstallBundle</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.sling</groupId>
                    <artifactId>maven-sling-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>my-project</id>
                            <phase>install</phase>
                            <goals>
                                <goal>install</goal>
                            </goals>                                
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>          `

点击此处了解更多信息:http://docs.adobe.com/docs/en/cq/aem-how-tos/development/how-to-build-aem-projects-using-apache-maven.html#Bundle Development Tasks