Use a local CQ5 instance as a maven repository source for development, instead of using Day maven repository.

Opomba:

This method isn't officially supported.

Solution

  1. Install the cq5-archiva-servlet-1.6.zip. (It may fail to load on CQ 5.2.1, but ignore the message then install.)

  2. Configure your project pom.xml to use your local CQ5 instance as a maven repository

    <repositories>
            <repository>
                <id>localinstance</id>
                <name>CQ 5.x localinstance</name>
                <url>http://localhost:4502/maven/repository</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
            </repository>
     </repositories>
     <pluginRepositories>
            <pluginRepository>
                <id>localinstance</id>
                <name>CQ 5.x localinstance</name>
                <url>http://localhost:4502/maven/repository</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
            </pluginRepository>
     </pluginRepositories>

     

  3. Additionally, you can use as parent dependency the following:

        <parent>
            <groupId>com.day</groupId>
            <artifactId>cq5-parent</artifactId>
            <version>5.6.0</version> (if for example your instance is a 5.6.0)
        </parent>

    The groupId/artifactId is configurable with Sling configuration, and the version is not important. (But make sense to use according to target, such as 5.2.1/5.3/5.4).

  4. In your .m2/settings.xml, add the following lines to define the login/password:

    <server>
          <id>localinstance</id>
          <username>admin</username>
          <password>admin</password>
    </server>

  5. Additionally, you can add your jar/pom in the "/var/maven/repository" (using same structure as maven store it usually)

    Notes:

    • You can't really browse through the maven repository with your browser with that servlet, it returns a valid response at the moment.
    • Additional libraries like maven-sling-plugin and maven-packutil-plugin are also already present so accessing day repo is not required for them anymore.
    • The "/var/maven/tpl/archiva-parent.pom" includes apache people repository and ibliblio mirror automatically so that other dependencies can be found there, you can customize it if necessary.
    • You can also get a generated pom file that includes all the existing dependencies so you can easily copy/paste those you need for your maven module if you don't want to use the above parent dependency. For example using the URL: http://localhost:4502/maven/dependencies.
    • You can use a maven archive as proxy so that if your cq5 instance is not running, it can still serve the files.

Quick help for the maven-packutil-plugin (which is not currently an official plug-in, but useful)

<plugin>
 <groupId>com.day.cq.tools</groupId>
 <artifactId>maven-packutil-plugin</artifactId>
 <version>0.0.1</version>
 <configuration>
   <targetURL>http://localhost:4502</targetURL>
   <user>admin</user>
   <password>admin</password>
   <workspace>crx.default</workspace>
 </configuration>
 <executions>
   <execution>
    <id>install-package</id>
    <goals>
      <goal>install</goal>
    </goals>
   </execution>
 </executions>
</plugin>

Prenos

* maven_test.zip
Simple sample pom.xml with some source code for testing purpose

Za ta izdelek je bila izdana neprenosljiva licenca za priznanje avtorstva, nekomercialno uporabo in skupno rabo pod enakimi pogoji 3.0  Objav v storitvah Twitter™ in Facebook ne urejajo pogoji pogodbe Creative Commons.

Pravna obvestila   |   Pravilnik o zasebnosti v spletu