2014-10-30 34 views
1

我有一個項目需求,即通過命令提示符或maven命令在CQ5系統控制檯中部署OSGI捆綁包(打包爲JAR)。如何通過命令提示符或通過maven命令將OSGI捆綁包部署到CQ5系統控制檯

我找 - 有什麼辦法,我可以部署包裝成瓶的CQ5系統控制檯直接使用命令提示符或Maven命令我使用OSGi包。

是我的嘗試 - 我找到了一種方法,這可以通過實現 - 「屈」,下面是這個命令:

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

,但按要求,我不能限制用戶首先安裝「cURL」然後運行該命令。

是否有任何解決方法將我的OSGI包直接安裝到CQ5控制檯管理器。

回答

2

如果您使用Maven構建捆綁包,則可以包含Maven Sling Plugin

假設您的POM(或settings.xml)中包含正確的屬性,您可以直接致電mvn sling:install將該軟件包安裝到Felix中。

你也可以使用多個配置文件,例如:

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

假設每個配置文件將保留一個網址給該環境&所需要的憑據。

1

你試過mvn -P autoInstallBundle?您將需要添加autoInstallBundle輪廓在POM文件:這裏瞭解更多信息

 <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

+0

如果您想要進一步改進您的Maven工作流程,請查看Apache Sling項目或Adobe CQ5/AEM產品的父項目。 (https://github.com/apache/sling/blob/trunk/parent/pom.xml) – 2014-11-04 19:05:46

2

除了Maven的吊帶插件,你也可以複製包和內容包中如果該文件夾在/apps以下,並且不超過4或5個層次(我不記得確切的數字),那麼在CQ的JCR存儲庫中一個名爲「install」的文件夾。

因此,例如,安裝通過WebDAV的JCR存儲庫(http://localhost:4502默認情況下),創建一個名爲/apps/yourstuff/install文件夾,並複製你的包在那裏將導致Apache的吊索OSGi的安裝程序進行安裝,就好像是已經通過OSGi控制檯發生。如果以這種方式提供多份副本,安裝程序只會考慮最新版本的軟件包。