Adobe Content Package Maven-Plug-in adobe-content-package-maven-plugin
Verwenden Sie das Adobe Content Package Maven-Plug-in, um Paketbereitstellungs- und -verwaltungsaufgaben in Ihre Maven-Projekte zu integrieren.
Die Bereitstellung der erstellten Pakete in AEM wird vom Adobe Content Package Maven-Plug-in durchgeführt und ermöglicht die Automatisierung von Aufgaben, die normalerweise mit AEM Package Manager ausgeführt werden:
- Erstellen Sie neue Pakete anhand der Dateien im Dateisystem.
- Installieren und deinstallieren Sie Pakete in AEM.
- Erstellen Sie bereits in AEM definierte Pakete.
- Rufen Sie eine Liste der in AEM installierten Pakete ab.
- Entfernen Sie ein Paket aus AEM.
In diesem Dokument wird erläutert, wie Sie diese Aufgaben mit Maven verwalten können. Es ist jedoch auch wichtig zu verstehen, wie AEM Projekte und ihre Pakete strukturiert sind.
content-package-maven-plugin
unterstützt ab Version 1.0.2 nicht mehr die Paketerstellung.- Dieser Artikel beschreibt die Bereitstellung der vom Adobe Content Package Maven-Plug-in erstellten Pakete in AEM.
Pakete und die AEM-Projektstruktur aem-project-structure
AEM as a Cloud Service hält sich an die neuesten Best Practices für Package-Management und Projektstruktur, wie sie vom neuesten AEM-Projektarchetyp implementiert wurden.
Abrufen des Content Package Maven-Plug-ins obtaining-the-content-package-maven-plugin
Das Plug-in ist im Maven Central Repository verfügbar.
Ziele und Parameter des Content Package Maven-Plug-ins
Um das Inhaltspaket-Maven-Plug-in zu verwenden, fügen Sie das folgende Plug-in-Element innerhalb des Build-Elements Ihrer POM-Datei hinzu:
<plugin>
<groupId>com.day.jcr.vault</groupId>
<artifactId>content-package-maven-plugin</artifactId>
<version>1.0.4</version>
<configuration>
<!-- parameters and values common to all goals, as required -->
</configuration>
</plugin>
Um Maven zu ermöglichen, das Plug-in herunterzuladen, verwenden Sie das Profil, das im Abschnitt Abrufen des Inhaltspaket-Maven-Plug-ins auf dieser Seite bereitgestellt wird.
Ziele des Inhaltspaket-Maven-Plug-ins goals-of-the-content-package-maven-plugin
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 gelten, werden im Abschnitt für dieses Ziel beschrieben.
Plug-in-Präfix plugin-prefix
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 parameter-prefix
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="https://192.168.1.100:4502/crx/packmgr/service.jsp"
Proxys proxies
Ziele, die Proxys für AEM verwenden, verwenden die erste gültige Proxy-Konfiguration, die in den Maven-Einstellungen gefunden wurde. Wenn keine Proxy-Konfiguration gefunden wird, wird kein Proxy verwendet. Siehe hierzu den Parameter useProxy
im Abschnitt Allgemeine Parameter.
Allgemeine Parameter common-parameters
Die Parameter in der folgenden Tabelle gelten für alle Ziele, sofern kein entsprechender Hinweis in der Spalte Ziele vorliegt.
failOnError
boolean
false
true
führt zum Fehlschlagen des Builds, wenn ein Fehler auftritt. Der Wert false
führt dazu, dass der Build den Fehler ignoriert.package
name
String
build
: Ja, install
: Nein, rm
: Jabuild
: Kein Standard, install
: Der Wert der Eigenschaft artifactId
des Maven-Projektsls
password
String
admin
package
serverId
String
package
targetURL
String
http://localhost:4502/crx/packmgr/service.jsp
package
timeout
int
5
package
useProxy
boolean
true
true
veranlasst Maven, die erste aktive Proxy-Konfiguration zu verwenden, die gefunden wurde, um Anforderungen an Package Manager zu senden.package
userId
String
admin
package
verbose
boolean
false
package
build build
Erstellt ein Inhaltspaket, das bereits auf einer AEM-Instanz definiert ist.
Parameter parameters
Alle Parameter für das Build-Ziel werden im Abschnitt Allgemeine Parameter beschrieben.
install install
Installiert ein Paket im Repository. Für die Ausführung dieses Ziels ist kein Maven-Projekt erforderlich. Das Ziel ist an die install
-Phase des Maven-Build-Lebenszyklus gebunden.
Parameter parameters-1
Lesen Sie neben den folgenden Parametern die Beschreibungen im Abschnitt Allgemeine Parameter.
artifact
String
artifactId
des Maven-ProjektsgroupId:artifactId:version[:packaging]
artifactId
String
groupId
String
groupId
des zu installierenden Artefaktsinstall
boolean
true
localRepository
org.apache.maven.artifact.repository.ArtifactRepository
localRepository
packageFile
java.io.File
packaging
String
zip
pomRemoteRepositories
java.util.List
remoteArtifactRepositories
project
org.apache.maven.project.MavenProject
repositoryId
(POM), repoID
(Befehlszeile)String
temp
repositoryUrl
(POM), repoURL
(Befehlszeile)String
ls ls
Führt die in Package Manager bereitgestellten Pakete auf.
Parameter parameters-2
Alle Parameter des Ziels „Is“ werden im Abschnitt Allgemeine Parameter beschrieben.
rm rm
Entfernt ein Paket aus Package Manager.
Parameter parameters-3
Alle Parameter des Ziels „rm“ werden im Abschnitt Allgemeine Parameter beschrieben.
uninstall uninstall
Deinstalliert ein Paket. Das Paket verbleibt auf dem Server mit dem deinstallierten Status.
Parameter parameters-4
Alle Parameter des Ziels „uninstall“ werden im Abschnitt Allgemeine Parameter beschrieben.
package 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 parameters-5
Lesen Sie neben den folgenden Parametern die Beschreibung des Parameters name
im Abschnitt Allgemeine Parameter.
archive
org.apache.maven.archiver.MavenArchiveConfiguration
builtContentDirectory
java.io.File
dependencies
java.util.List
embeddedTarget
java.lang.String
embeddeds
java.util.List
failOnMissingEmbed
boolean
false
true
führt zum Fehlschlagen des Builds, wenn ein eingebettetes Artefakt in den Projektabhängigkeiten nicht gefunden werden kann. Der Wert false
führt dazu, dass der Build solche Fehler ignoriert.filterSource
java.io.File
filters
com.day.jcr.vault.maven.pack.impl.DefaultWorkspaceFilter
filter.xml
eingeschlossen. Siehe hierzu im Folgenden den Abschnitt Verwenden von „filters“.finalName
java.lang.String
finalName
.zip
group
java.lang.String
groupID
groupId
des generierten Inhaltspakets, die Teil des Ziel-Installationspfads für das Inhaltspaket istoutputDirectory
java.io.File
prefix
java.lang.String
project
org.apache.maven.project.MavenProject
properties
java.util.Map
properties.xml
festlegen können. Diese Eigenschaften können die folgenden vordefinierten Eigenschaften nicht außer Kraft setzen: group
(Parameter group
zum Festlegen verwenden), name
(Parameter name
zum Festlegen verwenden), version
(Parameter version
zum Festlegen verwenden), description
(festgelegt anhand der Projektbeschreibung), groupId
(groupId
des Maven-Projektdeskriptors), artifactId
(artifactId
des Maven-Projektdeskriptors), dependencies
(Parameter dependencies
zum Festlegen verwenden), createdBy
(Wert der Systemeigenschaft user.name
), created
(die aktuelle Systemzeit), requiresRoot
(Parameter requiresRoot
zum Festlegen verwenden), packagePath
(automatisch generiert anhand des Gruppen- und Paketnamens)requiresRoot
boolean
requiresRoot
-Eigenschaft der Datei properties.xml
.subPackages
java.util.List
version
java.lang.String
workDirectory
java.io.File
Verwenden von „filters“ using-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>
Importmodus import-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. Inhalte, die sowohl im Paket als auch im Repository enthalten sind, bleiben 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. Der Inhalt im Repository wird durch den entsprechenden Inhalt im Paket ersetzt. Inhalte werden aus dem Repository entfernt, wenn sie nicht im Paket vorhanden sind.
- Update: Inhalt im Paket, der sich nicht im Repository befindet, wird zum Repository hinzugefügt. Der Inhalt im Repository wird durch den entsprechenden Inhalt im Paket ersetzt.
Wenn der Filter kein mode
-Element aufweist, wird der Standardwert replace
verwendet.
help help
Parameter parameters-6
detail
boolean
false
goal
String
indentSize
int
2
lineLength
int
80
Einbeziehen eines Miniaturbilds oder einer Eigenschaftsdatei im Paket including-a-thumbnail-image-or-properties-file-in-the-package
Ersetzen Sie die standardmäßigen Paketkonfigurationsdateien, um die Paketeigenschaften anzupassen. Verwenden Sie beispielsweise ein Miniaturbild, um das Paket in Package Manager zu unterscheiden.
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 and so on) -->
<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 des AEM-Projektarchetyps zum Erzeugen von AEM-Projekten using-archetypes
Der aktuelle AEM-Projektarchetyp implementiert die am meisten bewährte Paketstruktur sowohl für On-Premise- als auch für AMS-Implementierungen und wird für alle AEM-Projekte empfohlen.