Sie sehen sich Hilfeinhalte der folgenden Version an:

Verwenden Sie das Inhaltspaket-Maven-Plug-in zum Integrieren von Paketverwaltungsaufgaben in Ihre Maven-Projekte. Die Plug-in-Ziele und -Parameter ermöglichen Ihnen die Automatisierung der Aufgaben, die Sie für gewöhnlich auf der Seite „Paketmanager“ oder an der FileVault-Befehlszeile ausführen würden:

  • Erstellen Sie neue Pakete anhand der Dateien im Dateisystem.
  • Installieren und deinstallieren Sie Pakete auf dem CRX- oder CQ-Server.
  • Erstellen Sie bereits auf dem Server definierte Pakete.
  • Rufen Sie eine Liste der auf dem Server installierten Pakete ab.
  • Entfernen Sie ein Paket vom Server.

Hinzufügen des Inhaltspaket-Maven-Plug-ins zur POM-Datei

Fügen Sie zum Verwenden des Inhaltspaket-Maven-Plug-ins das folgende Plug-in-Element im Buid-Element Ihrer POM-Datei hinzu:

<plugin>
	<groupId>com.day.jcr.vault</groupId>
	<artifactId>content-package-maven-plugin</artifactId>
	<version>0.0.24</version>
	<configuration>
	      <!-- parameters and values common to all goals, as required --> 
	</configuration>
</plugin>

Verwenden Sie das im Abschnitt Abrufen des Inhaltspaket-Maven-Plug-ins auf dieser Seite angegebene Profil, um Maven für das Herunterladen des Plug-ins zu aktivieren.

Ziele des Inhaltspaket-Maven-Plug-ins

Die durch das Inhaltspaket-Plug-in bereitgestellten Ziele und Zielparameter werden in den folgenden Abschnitten beschrieben. Die im Abschnitt „Allgemeine Parameter“ beschriebenen Parameter können für die meisten der Ziele verwendet werden. Parameter, die für ein Ziel zutreffen, werden im Abschnitt für das jeweilige Ziel beschrieben.

Plug-in-Präfix

Das Plug-in-Präfix lautet „content-package“. Verwenden Sie dieses Präfix, um ein Ziel über die Befehlszeile auszuführen, wie dies im folgenden Beispiel gezeigt wird:

mvn content-package:build 

Parameterpräfix

Soweit nicht anderweitig gekennzeichnet, verwenden die Plug-in-Ziele und -Parameter das Präfix „vault“. Dies gilt auch für das folgende Beispiel:

mvn content-package:install -Dvault.targetURL="http://192.168.1.100:4502/crx/packmgr/service.jsp"

Proxys

Ziele, die Proxys für den CRX- oder CQ-Server verwenden, verwenden die erste in den Maven-Einstellungen gefundene gültige Proxykonfiguration. Wenn keine Proxykonfiguration gefunden wird, wird kein Proxy verwendet. Siehe hierzu den Parameter „useProxy“ im Abschnitt „Allgemeine Einstellungen“.

Allgemeine Parameter

Die Parameter in der folgenden Tabelle gelten für alle Ziele, sofern kein entsprechender Hinweis in der Spalte „Ziele“ vorliegt.

Name Typ Erforderlich Standardwert Beschreibung Ziele
failOnError Boolesch Nein false Wenn der Wert true ist, schlägt der Build fehl, wenn ein Fehler auftritt. Der Wert false führt dazu, dass der Build den Fehler ignoriert. Alle Ziele außer package.
name String build: Ja
install: Nein
rm: Ja
Build: Kein Standardwert.
install: Der Wert der Eigenschaft „artifactId“ des Maven-Projekts.
Der Name des zu bearbeitenden Pakets. Alle Ziele außer ls.
password String Ja admin Das Kennwort zur Authentifizierung beim CRX-Server. Alle Ziele außer package.
serverId String Nein Die Server-ID, von der der Benutzername und das Kennwort zur Authentifizierung abgerufen werden sollen. Alle Ziele außer package.
targetURL String Ja http://localhost:4502/
crx/packmgr/
service.jsp
Die URL der HTTP-Service-API des CRX-Paketmanagers. Alle Ziele außer package.
timeout int Nein 5 Der Zeitraum bis zur Zeitüberschreitung bei der Kommunikation mit dem Paketmanager-Dienst in Sekunden. Alle Ziele außer package.
useProxy Boolesch Nein true Legt fest, ob Proxy-Konfigurationen aus der Maven-Einstellungsdatei verwendet werden. Der Wert true führt zur Verwendung der ersten aktiven Proxykonfiguration, die zum proxybasierten Vermitteln von Anforderungen an den Paketmanager gefunden wird. Der Wert „false“ führt dazu, dass kein Proxy verwendet wird. Alle Ziele außer package.
userId String Ja admin Der Benutzername zur Authentifizierung beim CRX-Server. Alle Ziele außer package.
verbose Boolesch Nein false Aktiviert oder deaktiviert die ausführliche Protokollierung. Der Wert true aktiviert die ausführliche Protokollierung. Alle Ziele außer package.

Build

Erstellt ein bereits auf einem CRX- oder CQ5-Server definiertes Inhaltspaket.

Hinweis:

Dieses Ziel muss nicht in einem Maven-Projekt ausgeführt werden.

Parameter

Alle Parameter für das Buildziel werden im Abschnitt Allgemeine Parameter beschrieben.

Beispiel

Im folgenden Beispiel wird das workflow-mbean-Paket, das auf dem CQ-Server mit der IP-Adresse 10.36.79.223 installiert ist, erstellt. Das Ziel wird mithilfe des folgenden Befehls ausgeführt:

mvn content-package:build

Die folgende POM-Datei befindet sich im aktuellen Verzeichnis des Befehlszeilentools. Der POM gibt den Paketnamen und die URL des Paketdiensts an.

<project xmlns="http://maven.apache.org/POM/4.0.0" 
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
		xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.adobe.example</groupId>
  <artifactId>example-package</artifactId>
  <version>0.0.1-SNAPSHOT</version>
    <build>
        <plugins>
	    <plugin>
		<groupId>com.day.jcr.vault</groupId>
		<artifactId>content-package-maven-plugin</artifactId>
		<version>0.0.24</version>
		<configuration>
			<name>workflow-mbean</name>
			<failOnError>true</failOnError>
			<targetURL>http://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
		</configuration>
	    </plugin>
	</plugins>
    </build>
</project>

install

Installiert ein Paket im CRX-Repository. Für die Ausführung dieses Ziels ist kein Maven-Projekt erforderlich. Das Ziel ist an die Installationsphase des Maven-Build-Lebenszyklus gebunden.

Parameter

Lesen Sie neben den folgenden Parametern die Beschreibungen im Abschnitt Allgemeine Parameter.

Name Typ Erforderlich Standardwert Beschreibung
artifact String Nein Der Wert der artifactId-Eigenschaft des Maven-Projekts. Ein String in der Form groupId:artifactId:version[:packaging].
artifactId String Nein Die ID des zu installierenden Artefakts
groupId String Nein Die groupId des zu installierenden Artefakts
install Boolesch Nein true Legt fest, ob das Paket beim Upload automatisch entpackt wird. Wenn der Wert „true“ vorliegt, wird das Paket entpackt. Liegt hingegen der Wert „false“ vor, wird das Paket nicht entpackt.
localRepository org.apache.maven.
artifact. repository.
ArtifactRepository
Nein Der Wert der Systemvariable localRepository. Das lokale Maven-Repository. Sie können diesen Parameter nicht mithilfe der Plug-in-Konfiguration konfigurieren. Die Systemeigenschaft wird immer verwendet.
packageFile java.io.File Nein Das für das Maven-Projekt definierte primäre Artefakt. Der Name der zu installierenden Paketdatei.
packaging String Nein zip Die Paketart des zu installierenden Artefakts
pomRemoteRepositories java.util.List Ja Der für das Maven-Projekt definierte Wert der Eigenschaft remoteArtifactRepositories. Dieser Wert kann nicht mithilfe der Plug-in-Konfiguration konfiguriert werden. Der Wert muss im Projekt angegeben werden. 
project org.apache.maven.
project.MavenProject
Ja Das Projekt, für das das Plug-in konfiguriert ist. Das Maven-Projekt. Das Projekt ist implizit, da das Projekt die Plug-in-Konfiguration aufweist.
repositoryId (POM)
repoID (Befehlszeile)
String Nein temp Die ID des Repositorys, von dem das Artefakt abgerufen wird. Verwenden Sie „repositoryID“ in einem POM. Verwenden Sie „repoID“ an einer Befehlszeile.
repositoryUrl (POM)
repoURL (Befehlszeile)
String Nein Die URL des Repositorys, von dem das Artefakt abgerufen wird.  Verwenden Sie „repositoryURL“ in einem POM. Verwenden Sie „repoURL“ an einer Befehlszeile.
version String Nein Die Version des zu installierenden Artefakts.

Beispiel

Im folgenden Beispiel wird ein Paket erstellt, in dem das workflow-mbean OSGi-Bundle (siehe hierzu das Beispiel für das Build-Ziel) enthalten ist. Anschließend wird das Paket installiert. Da das Installationsziel an die Paketinstallationsphase gebunden ist, führt der folgende Befehl das Installationsziel aus:

mvn install
<project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
    http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.adobe.example.myapp</groupId>
  <artifactId>workflow-mbean</artifactId>
  <version>0.0.3-SNAPSHOT</version>

  <build>
    <plugins>
      <plugin>
        <groupId>com.day.jcr.vault</groupId>
        <artifactId>content-package-maven-plugin</artifactId>
        <version>0.0.24</version>
        <configuration>
          <builtContentDirectory>jcr_root</builtContentDirectory>
          <targetURL>http://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>package</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

ls

Führt die im Paketmanager bereitgestellten Pakete auf.

Parameter

Alle Parameter des Ziels „Is“ werden im Abschnitt Allgemeine Parameter beschrieben.

Beispiel

Im folgenden Beispiel werden die Pakete aufgelistet, die auf den CQ-Server mit der IP-Adresse 10.36.79.223 installiert sind. Das Ziel wird mithilfe des folgenden Befehls ausgeführt:

mvn content-package:ls

Die folgende POM-Datei befindet sich im aktuellen Verzeichnis des Befehlszeilentools. Der POM gibt die URL des Paketdiensts an.

<project xmlns="http://maven.apache.org/POM/4.0.0" 
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
		xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.adobe.example</groupId>
  <artifactId>example-package</artifactId>
  <version>0.0.1-SNAPSHOT</version>
    <build>
        <plugins>
	    <plugin>
		<groupId>com.day.jcr.vault</groupId>
		<artifactId>content-package-maven-plugin</artifactId>
		<version>0.0.24</version>
		<configuration>
		    <targetURL>http://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
		</configuration>
	     </plugin>
	  </plugins>
     </build>
</project>

rm

Entfernt ein Paket aus dem Paketmanager.

Parameter

Alle Parameter des rm-Ziels werden im Abschnitt Allgemeine Parameter beschrieben.

Beispiel

Im folgenden Beispiel wird das workflow-mbean Paket entfernt, das auf den CQ-Server mit der IP-Adresse 10.36.79.223 installiert ist. Das Ziel wird mithilfe des folgenden Befehls ausgeführt:

mvn content-package:rm

Die folgende POM-Datei befindet sich im aktuellen Verzeichnis des Befehlszeilentools. Der POM gibt die URL des Paketdiensts und den Namen des Pakets an.

<project xmlns="http://maven.apache.org/POM/4.0.0" 
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
		xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.adobe.example</groupId>
  <artifactId>example-package</artifactId>
  <version>0.0.1-SNAPSHOT</version>
    <build>
        <plugins>
	    <plugin>
		<groupId>com.day.jcr.vault</groupId>
		<artifactId>content-package-maven-plugin</artifactId>
		<version>0.0.24</version>
		<configuration>
                    <name>workflow-mbean</name>
		    <targetURL>http://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
		</configuration>
	     </plugin>
	  </plugins>
     </build>
</project>

uninstall

Deinstalliert ein Paket. Das Paket verbleibt auf dem Server mit dem deinstallierten Status.

Parameter

Alle Parameter des uninstall-Ziels werden im Abschnitt Allgemeine Parameter beschrieben.

Beispiel

Im folgenden Beispiel wird das workflow-mbean-Paket deinstalliert, das auf dem CQ-Server mit der IP-Adresse 10.36.79.223 installiert ist. Das Ziel wird mithilfe des folgenden Befehls ausgeführt:

mvn content-package:uninstall

Die folgende POM-Datei befindet sich im aktuellen Verzeichnis des Befehlszeilentools. Der POM gibt den Paketnamen und die URL des Paketdiensts an.

<project xmlns="http://maven.apache.org/POM/4.0.0" 
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
		xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.adobe.example</groupId>
  <artifactId>workflow-mbean</artifactId>
  <version>0.0.3-SNAPSHOT</version>
    <build>
        <plugins>
	    <plugin>
		<groupId>com.day.jcr.vault</groupId>
		<artifactId>content-package-maven-plugin</artifactId>
		<version>0.0.24</version>
		<configuration>
			<name>workflow-mbean</name>
			<failOnError>true</failOnError>
			<targetURL>http://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
		</configuration>
	    </plugin>
	</plugins>
    </build>
</project>

package

Erstellt ein Inhaltspaket. Die Standardkonfiguration des Paketziels umfasst die Inhalte des Verzeichnisses, in dem kompilierte Dateien gespeichert sind. Für die Ausführung des Paketziels muss die Phase der Build-Kompilierung abgeschlossen sein. Das Paketziel ist an die Paketphase des Maven-Build-Lebenszyklus gebunden.

Parameter

Lesen Sie neben den folgenden Parametern die Beschreibung des Parameters name im Abschnitt Allgemeine Parameter.

Name Typ Erforderlich Standardwert Beschreibung
archive org.apache.maven.
archiver.
MavenArchiveConfiguration
Nein Die zu verwendende Archivkonfiguration. Weitere Informationen finden Sie in der Dokumentation zu Maven Archiver.
builtContentDirectory java.io.File Ja Der Wert des Ausgabeverzeichnisses des Maven-Builds. Das Verzeichnis mit den in das Paket einzuschließenden Inhalten.
dependencies java.util.List Nein
embeddedTarget java.lang.String Nein
embeddeds java.util.List Nein
failOnMissingEmbed Boolesch Ja false Beim Wert  true schlägt der Build fehl, wenn ein eingebettetes Artefakt nicht in den Abhängigkeiten des Projekts gefunden wird. Der Wert „false“ führt dazu, dass der Build den Fehler ignoriert.
filterSource java.io.File Nein Eine Datei, die die Quelle des Workspace-Filters angibt. Die in der Konfiguration angegebenen und über Einbettungen oder Teilpakete eingefügten Filter werden mit dem Dateiinhalt zusammengeführt.
filters com.day.jcr.
vault.maven.pack.impl.
DefaultWorkspaceFilter
Nein Enthält Filterelemente, die den Paketinhalt definieren. Bei der Ausführung werden die Filter in der Datei „filter.xml“ eingeschlossen. Siehe hierzu im Folgenden den Abschnitt „Verwenden von 'filters'“.
finalName java.lang.String Ja Der im Maven-Projekt (Build-Phase) definierte finalName. Der Name der generierten ZIP-Paketdatei ohne ZIP-Dateierweiterung.
group java.lang.String Ja Die im Maven-Projekt definierte groupID. Die groupID des generierten Inhaltspakets. Dieser Wert ist Bestandteil des Zielinstallationspfads für das Inhaltspaket.
outputDirectory java.io.File Ja Das im Maven-Projekt definierte Build-Verzeichnis. Das lokale Verzeichnis, in dem das Inhaltspaket gespeichert ist.
prefix java.lang.String Nein
project org.apache.maven.
project.MavenProject
Yes Das Maven-Projekt.
properties java.util.Map Nein Weitere Eigenschaften, die Sie in der Datei properties.xml festlegen können. Diese Eigenschaften können die folgenden vordefinierten Eigenschaften nicht überschreiben:
  • group: Verwenden Sie zum Festlegen den Parameter „group“
  • name: Verwenden Sie zum Festlegen den Parameter „name“
  • version: Verwenden Sie zum Festlegen den Parameter „version“
  • description: In der Projektbeschreibung festlegen
  • groupId: groupId des Maven-Projektdeskriptors
  • artifactId: artifactId des Maven-Projektdeskriptors
  • dependencies: Verwenden Sie zum Festlegen den Parameter „dependencies“
  • createdBy: Der Wert der Systemeigenschaft „user.name“
  • created: Die aktuelle Systemzeit
  • requiresRoot: Verwenden Sie zum Festlegen den Parameter „requiresRoot“
  • packagePath: Automatisch aus den Gruppen- und Paketnamen generiert
requiresRoot Boolesch Ja false Legt fest, ob das Paket das Stammverzeichnis benötigt. Dies wird zur Eigenschaft <code>requiresRoot</code> der Datei „properties.xml“.
subPackages java.util.List Nein
version java.lang.String Ja Die im Maven-Projekt definierte Version Die Version des Inhaltspakets.
workDirectory java.io.File Ja Das im Maven-Projekt (Build-Phase) definierte Verzeichnis. Das Verzeichnis mit den in das Paket einzuschließenden Inhalten.

Verwenden von „filters“

Verwenden Sie das Element „filters“ zum Definieren des Paketinhalts. Die Filter werden zum Element „workspaceFilter“ in der Datei META-INF/vault/filter.xml des Pakets hinzugefügt.

Im folgenden Filterbeispiel wird die zu verwendende XML-Struktur gezeigt:

<filter>
   <root>/apps/myapp</root>
   <mode>merge</mode> 
       <includes>
              <include>/apps/myapp/install/</include>
              <include>/apps/myapp/components</include>
       </includes>
       <excludes>
              <exclude>/apps/myapp/config/*</exclude>
       </excludes>
</filter>

Importieren von „mode“

Das Element mode definiert, wie sich das Importieren des Pakets auf den Inhalt im Repository auswirkt. Die folgenden Werte können verwendet werden:

  • Merge: Inhalt im Paket, der sich nicht bereits im Repository befindet, wird hinzugefügt. Inhalt, der sich im Paket und Repository befindet, verbleibt unverändert. Es wird kein Inhalt aus dem Repository entfernt. 
  • Replace: Inhalt im Paket, der sich nicht im Repository befindet, wird zum Repository hinzugefügt. Inhalt im Repository wird durch übereinstimmenden Inhalt im Paket ersetzt. Inhalt wird aus dem Repository entfernt, wenn er im Paket nicht vorhanden ist.
  • Update: Inhalt im Paket, der sich nicht im Repository befindet, wird zum Repository hinzugefügt. Inhalt im Repository wird durch übereinstimmenden Inhalt im Paket ersetzt. Vorhandener Inhalt wird aus dem Repository entfernt.  

Wenn der Filter kein mode-Element aufweist, wird der Standardwert replace verwendet. 

Beispiel

Im folgenden Beispiel wird ein Paket erstellt, das das workflow-mbean OSGi-Bundle enthält. Die POM-Datei identifiziert das Verzeichnis „jcr_root“ als den Wert der Eigenschaft „builtContentDirectory“. Das Verzeichnis „jcr_root“ enthält die Bundle-JAR-Datei in der Verzeichnisstruktur, die das Repository spiegelt:

jcr_root/apps/myapp/install/workflow-mbean-0.03-SNAPSHOT.jar

Da das Ziel an die Paket-Build-Phase gebunden ist, führt der folgende Befehl das Paketziel aus:

mvn package
<project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
    http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.adobe.example.myapp</groupId>
  <artifactId>workflow-mbean</artifactId>
  <version>0.0.3-SNAPSHOT</version>

  <build>
    <plugins>
      <plugin>
        <groupId>com.day.jcr.vault</groupId>
        <artifactId>content-package-maven-plugin</artifactId>
        <version>0.0.24</version>
        <configuration>
          <builtContentDirectory>jcr_root</builtContentDirectory>
          <targetURL>http://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>package</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

Anstatt das Ziel package im Plug-in-Abschnitt executions auszudrücken, können Sie content-package als den Wert des Projektelements packaging verwenden.

<project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
    http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.adobe.example.myapp</groupId>
  <artifactId>workflow-mbean</artifactId>
  <version>0.0.3-SNAPSHOT</version>
  <packaging>content-package</packaging>
  <build>
    <plugins>
      <plugin>
        <groupId>com.day.jcr.vault</groupId>
        <artifactId>content-package-maven-plugin</artifactId>
        <version>0.0.24</version>
        <configuration>
          <builtContentDirectory>jcr_root</builtContentDirectory>
          <targetURL>http://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

help

Parameter

Name Typ Erforderlich Standardwert Beschreibung
detail Boolesch Nein false Legt fest, ob für jedes Ziel alle festlegbaren Eigenschaften angezeigt werden. Der Wert „true“ zeigt alle festlegbaren Eigenschaften an.
goal String Nein Der Name des Ziels, für das die Hilfe angezeigt werden soll. Wenn kein Wert angegeben wird, wird die Hilfe für alle Ziele angezeigt.
indentSize int Nein 2 Die Anzahl der Leerzeichen, die auf jeder Ebene zum Einzug verwendet werden. Wenn Sie einen Wert angeben, sollte dieser positiv sein.
lineLength int Nein 80 Die maximale Länge einer Anzeigezeile. Wenn Sie einen Wert angeben, sollte dieser positiv sein.

Abrufen des Inhaltspaket-Maven-Plug-ins

Das Plug-in steht über das öffentliche Adobe-Repository zur Verfügung. Fügen Sie zum Herunterladen des Plug-ins Ihrer Maven-Einstellungsdatei das folgende Maven-Profil hinzu und aktivieren Sie es. Beim Verwenden eines Maven-Befehls wird das Plug-in bei Bedarf in Ihr lokales Repository heruntergeladen.

Hinweis:

Das Adobe Public Releases-Repository kann nicht durchsucht werden. Wenn Sie mithilfe Ihres Webbrowsers zur Repository-URL navigieren, führt dies demnach zum Fehler „Nicht gefunden“. Maven kann jedoch auf Repository-Verzeichnisse zugreifen.

<profile>
    <id>adobe-public</id>
    <activation>
         <activeByDefault>false</activeByDefault>
    </activation>
    <properties>
         <releaseRepository-Id>adobe-public-releases</releaseRepository-Id>
         <releaseRepository-Name>Adobe Public Releases</releaseRepository-Name>
         <releaseRepository-URL>https://repo.adobe.com/nexus/content/groups/public</releaseRepository-URL>
    </properties>
    <repositories>
         <repository>
             <id>adobe-public-releases</id>
             <name>Adobe Basel Public Repository</name>
             <url>https://repo.adobe.com/nexus/content/groups/public</url>
             <releases>
                 <enabled>true</enabled>
                 <updatePolicy>never</updatePolicy>
             </releases>
             <snapshots>
                 <enabled>false</enabled>
             </snapshots>
         </repository>
     </repositories>
     <pluginRepositories>
         <pluginRepository>
             <id>adobe-public-releases</id>
             <name>Adobe Basel Public Repository</name>
             <url>https://repo.adobe.com/nexus/content/groups/public</url>
             <releases>
                 <enabled>true</enabled>
                 <updatePolicy>never</updatePolicy>
             </releases>
             <snapshots>
                 <enabled>false</enabled>
             </snapshots>
         </pluginRepository>
     </pluginRepositories>
</profile>

Einbetten von OSGi-Bundles in einem Inhaltspaket

Verwenden Sie das Inhaltspaket-Maven-Plug-in, um OSGi-Bundles in Ihrem Inhaltspaket einzubetten. Implementieren Sie zum Einbetten des Bundles die folgenden Konfigurationen:

  • Das Bundle muss als eine Abhängigkeit des Maven-Projekts deklariert werden.
  • Die Plug-in-Konfiguration verweist unter Verwendung des gewünschten Pfads des Bundles im Paket auf das Bundle.

Der folgende Beispiel-POM erstellt ein Paket, das das Bundle „Apache Sling JCR UserManager“ enthält. Im Paket befindet sich die Bundle-JAR-Datei im Ordner jcr_root/apps/myapp/install:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" 
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
             http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
  	<groupId>com.adobe.example.myapp</groupId>
	<artifactId>embedded-example</artifactId>
	<packaging>content-package</packaging>
	<version>1.0.0-SNAPSHOT</version>

   <build>
	<plugins>
	    <plugin>
	       <groupId>com.day.jcr.vault</groupId>
		    <artifactId>content-package-maven-plugin</artifactId>
		    <version>0.0.24</version>
		    <extensions>true</extensions>
		    <configuration>
			<filters>
			    <filter>
				<root>/apps/myapp</root>
			    </filter>
			 </filters>
			 <embeddeds>
			    <embedded>
				<groupId>org.apache.sling</groupId>
				<artifactId>org.apache.sling.jcr.jackrabbit.usermanager</artifactId>
				<target>/apps/myproject/install</target>
			     </embedded>
			 </embeddeds>
		     </configuration>
		</plugin>	
	   </plugins>
    </build>
    <dependencies>
	<dependency>
	     <groupId>org.apache.sling</groupId>
	     <artifactId>org.apache.sling.jcr.jackrabbit.usermanager</artifactId>
	     <version>2.2.0</version>
	</dependency>
    </dependencies>	
</project>

Einbeziehen eines Miniaturbilds oder einer Eigenschaftsdatei im Paket

Ersetzen Sie die standardmäßigen Paketkonfigurationsdateien, um die Paketeigenschaften anzupassen. Verwenden Sie beispielsweise ein Miniaturbild, um das Paket im Paketmanager und in Package Share voneinander zu unterscheiden.

Im Paket befinden sich die FileVault-spezifischen Dateien im Ordner „/META-INF/vault“. Die Quelldateien können sich überall in Ihrem Dateisystem befinden. Definieren Sie in der POM-Datei die Build-Ressourcen, um die Quelldateien nach „target/vault-work/META-INF“ zu kopieren, um sie ins Paket einzuschließen.

Im folgenden POM-Code werden die Dateien im Ordner „META-INF“ der Projektquelle zum Paket hinzugefügt:

<build>
    <resources>
        <!-- vault META-INF resources (thumbnail etc.) -->
        <resource>
            <directory>${basedir}/src/main/content/META-INF</directory>
            <targetPath>../vault-work/META-INF</targetPath>
        </resource>
    </resources>
</build>

Im folgenden POM-Code wird nur ein Miniaturbild zum Paket hinzugefügt. Das Miniaturbild muss „thumbnail.png“ benannt werden und sich im Ordner „META-INF/vault/definition“ des Pakets befinden. In diesem Beispiel befindet sich die Quelldatei im Ordner „/src/main/content/META-INF/vault/definition“ des Projekts:

<build>
    <resources>
        <!-- thumbnail only -->
        <resource>
            <directory>${basedir}/src/main/content/META-INF/vault/definition</directory>
            <targetPath>../vault-work/META-INF/vault/definition</targetPath>
        </resource>
    </resources>
</build>

Verwenden von Archetypen zum Generieren vom CQ-Projekten

Für das Generieren von CQ-Projekten stehen verschiedene Maven-Archetypen zur Verfügung. Verwenden Sie den Archetyp, der Ihren Entwicklungszielen entspricht:

Hinweis:

Das Apache Sling-Projekt bietet zudem Archetypen, die in der CQ-Entwicklung hilfreich sind. Diese sind unter http://sling.apache.org/site/maven-archetypes.html dokumentiert.

Jeder Archetyp generiert die folgenden Elemente:

  • die Projektordnerstruktur
  • POM-Dateien
  • FileVault-Konfigurationsdateien 

Archetypartefakte stehen über das öffentliche Maven-Repository von Adobe zur Verfügung. Ermitteln Sie zum Herunterladen und Ausführen eines Archetyps den Archetyp und das Adobe-Repository mithilfe der Parameter des Maven-Befehls „archetype:generate“:

mvn archetype:generate -DarchetypeGroupId=com.day.jcr.vault \
-DarchetypeArtifactId={id_of_archetype} -DarchetypeVersion=1.0.2 \
-DarchetypeRepository=adobe-public-releases

Das Maven-Archetyp-Plug-in verwendet den interaktiven Modus in der Shell oder Eingabeaufforderung, um Informationen über Ihr Projekt zu sammeln. Die von Ihnen bereitgestellten Informationen werden zum Konfigurieren verschiedener Projekteigenschaften verwendet. Dazu zählen beispielsweise Ordnernamen und Artefakt-IDs.

POM-Dateien

Die generierte POM-Datei umfasst Befehle für das Kompilieren von Code, Erstellen von Bundles und Bereitstellen von diesen in CQ in Paketen. Die Eigenschaften groupID, artifactId, version und name des Maven-Projekts werden mithilfe der von Ihnen an der interaktiven Maven-Eingabeaufforderung archetype:generate angegebenen Werte automatisch aufgefüllt.

Sie können die folgenden Standardwerte in der generierten Datei „pom.xml“ ändern:

  • Den CQ-Server-Namen oder die IP-Adresse: Der Standardwert ist localhost. Das Element crx.host unter project/properties enthält diesen Wert.
  • Die Portnummer für den CQ-Server: Der Standardwert ist 4502. Das Element crx.port unter project/properties enthält diesen Wert.
  • Die Version des Inhaltspaket-Maven-Plug-ins: Verwenden Sie die neueste Version als Inhalt des Elements version für das Plug-in mit der artifactId content-package-maven-plugin.  Der Standardwert lautet 0.0.24.

Verwenden der Archetypen

  1. Geben Sie in einem Shell-Fenster oder an einer Eingabeaufforderung den Maven-Befehl archetype:generate ein. Geben Sie bei einer entsprechenden Aufforderung die Werte für die verbleibenden Parameter an.

    Informationen über jeden Parameter finden Sie im Abschnitt für den von Ihnen verwendeten Archetyp.

  2. Verwenden Sie einen Text-Editor zum Öffnen der Datei „pom.xml“ und Bearbeiten der Standardwerte entsprechend Ihren Anforderungen.
  3. Füllen Sie die generierten Ordner mit Ressourcen auf.
  4. Geben Sie den Befehl mvn clean install ein. 

simple-content-package-archetype

Erstellt ein für das Installieren von Ressourcen für eine einfache CQ-Anwendung geeignetes Maven-Projekt. Die Ordnerstruktur, die unter dem Ordner /apps des CQ-Repositorys verwendet wird. Der POM definiert Befehle für das Verpacken der von Ihnen in den Ordnern abgelegten Ressourcen und das Installieren der Pakete auf dem CQ-Server.

Archetypartefakteigenschaften:

  • Gruppen-ID: com.day.jcr.vault
  • Artefakt-ID: simple-content-package-archetype
  • Version: 1.0.2
  • Repository: adobe-public-releases

Maven-Befehl:

mvn archetype:generate -DarchetypeGroupId=com.day.jcr.vault \
-DarchetypeArtifactId=simple-content-package-archetype \
-DarchetypeVersion=1.0.2 \
-DarchetypeRepository=adobe-public-releases

Archetypparameter:

  • groupId: Die groupId des durch Maven generierten Inhaltspakets. Der Wert wird automatisch in der POM-Datei verwendet. 
  • artifactId: Der Name des Inhaltspakets. Der Wert wird auch als der Name des Projektordners verwendet.
  • version: Die Version des Inhaltspakets.
  • package: Dieser Wert wird für „simple-content-package-archetype“ nicht verwendet.
  • appsFolderName: Der Name des Ordners unter /apps. 
  • artifactName: Die Beschreibung des Inhaltspakets.  
  • packageGroup: Der Name der Inhaltspaketgruppe. Dieser Wert konfiguriert den Parameter „group“ für das Paketziel des Inhaltspaket-Maven-Plug-ins.

Ordnerstruktur:

${artifactId}
   |- pom.xml
   |- README.txt
   |- src
      |- main
         |- content
             |- jcr_root
                 |- apps
                     |- ${appsFolderName}
                            |- components 
                               |- .content.xml
                            |- config
                            |- install
             |- META-INF
                 |- vault
                     |- config.xml
                     |- filter.xml
                     |- nodetypes.cnd
                     |- properties.xml
                     |- definition
                        |- .content.xml

simple-content-package-with-embedded-archetype

Führt dieselben Aufgaben wie „simple-content-package-archetype“ aus und lädt zudem ein Artefakt aus einem öffentlichen Maven-Repository herunter und schließt es ein. 

Archetyp-Bundle-Eigenschaften:

  • Gruppen-ID: com.day.jcr.vault
  • Artefakt-ID: simple-content-package-with-embedded-archetype
  • Version: 1.0.2
  • Repository: adobe-public-releases

Maven-Befehl:

mvn archetype:generate -DarchetypeGroupId=com.day.jcr.vault \
-DarchetypeArtifactId=simple-content-package-with-embedded-archetype \
-DarchetypeVersion=1.0.2 \
-DarchetypeRepository=adobe-public-releases

Archetypparameter:

  • groupId: Die groupId des durch Maven generierten Inhaltspakets. Der Wert wird automatisch in der POM-Datei verwendet. 
  • artifactId: Der Name des Inhaltspakets. Der Wert wird auch als der Name des Projektordners verwendet.
  • version: Die Version des Inhaltspakets.
  • package: Dieser Parameter wird nicht verwendet.
  • appsFolderName: Der Name des Ordners unter /apps. 
  • artifactName: Die Beschreibung des Inhaltspakets.  
  • embeddedArtifactId: Die ID des in das Inhaltspaket einzubettenden Artefakts.
  • embeddedGroupId: Die Gruppen-ID des einzubettenden Artefakts.
  • embeddedVersion: Die Version des einzubettenden Artefakts.
  • packageGroup: Der Name der Inhaltspaketgruppe. Dieser Wert konfiguriert den Parameter „group“ für das Paketziel des Inhaltspaket-Maven-Plug-ins.

Ordnerstruktur:

${artifactId}
   |- pom.xml
   |- README.txt
   |- src
      |- main
         |- content
             |- jcr_root
                 |- apps
                     |- ${appsFolderName}
                            |- components 
                            |- config
                            |- install
             |- META-INF
                 |- vault
                     |- config.xml
                     |- filter.xml
                     |- nodetypes.cnd
                     |- properties.xml
                     |- definition

multimodule-content-package-archetype

Erstellt ein Maven-Projekt, das die Ordnerstruktur für das Entwickeln einer CQ-Anwendung und das Installieren der Ressourcen auf dem Server aufweist.

Der Ordner bundle enthält die Ordnerstruktur, in der die Java- und JUnit-Quelldateien gespeichert sind, die Sie entwickeln. Die Datei „pom.xml“ in diesem Ordner erstellt das OSGi-Bundle. Die folgenden Werte im POM ermitteln das Artefakt und das Bundle:

  • artifactID: ${artifactID}-bundle
  • Bundle-SymbolicName: ${groupId}.${artifactId}-bundle.

${artifactID} und ${groupId} sind die Werte, die Sie für diese Parameter beim Ausführen der Archetypen bereitstellen.

Der Ordner content enthält die Ressourcen, die auf dem CQ-Server installiert werden. Der Wert von „artifactID“ lautet  ${artifactID}multimodule-bundle

Der übergeordnete Ordner enthält den übergeordneten POM, der Maven-Plug-ins und -Abhängigkeiten verwaltet. 

Archetyp-Bundle-Eigenschaften:

  • Gruppen-ID: com.day.jcr.vault
  • Artefakt-ID: multimodule-content-package-archetype
  • Version: 1.0.2
  • Repository: adobe-public-releases

Maven-Befehl:

mvn archetype:generate -DarchetypeGroupId=com.day.jcr.vault \
-DarchetypeArtifactId=multimodule-content-package-archetype \
-DarchetypeVersion=1.0.2 \
-DarchetypeRepository=adobe-public-releases

Archetypparameter:

  • groupId: Die groupId des durch Maven generierten Inhaltspakets. Der Wert wird automatisch in der POM-Datei verwendet. 
  • artifactId: Der Name des Inhaltspakets. Der Wert wird auch als der Name des Projektordners verwendet.
  • version: Die Version des Inhaltspakets.
  • package: Dieser Wert wird für „multimodule-content-package-archetype“ nicht verwendet.
  • appsFolderName: Der Name des Ordners unter /apps. 
  • artifactName: Die Beschreibung des Inhaltspakets.  
  • packageGroup: Der Name der Inhaltspaketgruppe. Dieser Wert konfiguriert den Parameter „group“ für das Paketziel des Inhaltspaket-Maven-Plug-ins.

Ordnerstruktur:

${artifactId}
   |- pom.xml
   |- bundle
      |- pom.xml
      |- src
         |- main
            |- java
               |- ${groupId}
                  |- SimpleDSComponent.java
         |- test
            |- java
               |- ${groupId}
                  |- SimpleUnitTest.java
   |- content
      |- pom.xml
      |- src
         |- main
            |- content
               |- jcr_root
                  |- apps
                     |- ${appsFolderName} 
                            |- config
                            |- install
                  |- META-INF
                      |- vault
                         |- config.xml
                         |- filter.xml
                         |- nodetypes.cnd
                         |- properties.xml
                         |- definition
                            |- .content.xml

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie