2015-09-14 67 views
0

我们有一个CQ REST API项目,以与我们的客户共享内容。该软件包是使用osgi jax-rs连接器创建的。我们仍处于孵化状态,但似乎整合工作正常。将MAVEN构建依赖项[OSGi捆绑包]与Maven一起安装到Adobe CQ

我们面临的问题是“osgi jax-rs connector”项目需要在CQ中安装一些捆绑软件(由项目提供的osgified软件)。目前我们正在使用felix控制台手动执行此操作。

我们可以使用MAVEN自动化过程(我们可以安装我们使用MAVEN创建的包)。

任何指向这个的指针都会有帮助。

San

回答

1

如果您正在构建一个zip包进行安装,您可以使用maven安装捆绑包,并且不在项目中包含依赖项,为您的SCM添加额外的空间。

为此,您可以使用maven-assembly-plugin插件。

例如包括这在你的pom.xml:

<plugins> 
     <plugin> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <configuration> 
       <appendAssemblyId>false</appendAssemblyId> 
       <descriptors> 
        <descriptor>src/main/assembly/zip.xml</descriptor> 
       </descriptors> 
      </configuration> 
      <executions> 
       <execution> 
        <phase>package</phase> 
        <goals> 
         <goal>single</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 

然后在你zip.xml您可以创建一个汇编文件是这样的:

<?xml version='1.0' encoding='UTF-8'?> 
<assembly 
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd"> 
    <id>zip</id> 
    <formats> 
    <format>zip</format> 
    </formats> 
    <includeBaseDirectory>false</includeBaseDirectory> 
    <fileSets> 
    <fileSet> 
     <directory>${basedir}/src/main/content/jcr_root</directory> 
     <outputDirectory>jcr_root</outputDirectory> 
     <excludes> 
      <exclude>**/.DS_Store</exclude> 
     </excludes> 
     <filtered>false</filtered> 
    </fileSet> 
    </fileSets> 
    <dependencySets> 
    <dependencySet> 
     <outputDirectory>jcr_root/apps/myapp/install</outputDirectory> 
     <useProjectArtifact>false</useProjectArtifact> 
     <scope>compile</scope> 
     <includes> 
      <include>com.my.groupid:my-maven-artifact-id</include> 
     </includes> 
     <useStrictFiltering>true</useStrictFiltering> 
    </dependencySet> 
    </dependencySets> 
</assembly> 

您可以调整依赖集并根据需要设置文件集。显然,我制作了一个AEM应用程序名称和maven artifact。

2

如果您还有一个UI包,例如与maven-vault-plugin一起安装的ZIP,您可以将JAR文件放在任何文件夹中。我通常把它叫做install

/apps/myproject/install 

有一个在CQ处理程序识别的内容包JAR文件,并将其安装到OSGi的。