Utilizza il plug-in Maven Adobe Content Package per integrare le attività di distribuzione e gestione dei pacchetti nei progetti Maven.
La distribuzione dei pacchetti costruiti all’AEM viene eseguita dal plug-in Maven per pacchetti di contenuti Adobi e consente l’automazione delle attività normalmente eseguite con l’AEM Gestione pacchetti:
Questo documento descrive come utilizzare Maven per gestire queste attività. Tuttavia è anche importante comprendere la struttura dei progetti AEM e dei relativi pacchetti.
Pacchetto creazione è ora di proprietà di Plug-in Maven pacchetto Apache Jackrabbit FileVault.
content-package-maven-plugin
non supporta più la creazione di pacchetti dalla versione 1.0.2.AEM as a Cloud Service aderisce alle best practice più recenti per la gestione dei pacchetti e la struttura dei progetti, come implementato dal più recente Archetipo di progetto AEM.
Per maggiori dettagli, vedi Struttura dei progetti AEM nella documentazione as a Cloud Service dell'AEM, nonché Archetipo progetto AEM documentazione. Entrambi sono pienamente supportati per AEM 6.5.
Il plug-in è disponibile da Archivio centrale Maven.
Per utilizzare il plug-in Maven per pacchetto di contenuti, aggiungi il seguente elemento plug-in all’interno dell’elemento di build del file POM:
<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>
Per consentire a Maven di scaricare il plug-in, utilizza il profilo fornito in Ottenere il plug-in Maven del pacchetto di contenuti in questa pagina.
Gli obiettivi e i parametri di obiettivo forniti dal plug-in Pacchetto di contenuti sono descritti nelle sezioni seguenti. I parametri descritti nella sezione Parametri comuni possono essere utilizzati per la maggior parte degli obiettivi. I parametri che si applicano a un obiettivo sono descritti nella sezione relativa a tale obiettivo.
Il prefisso del plug-in è content-package
. Utilizza questo prefisso per eseguire un obiettivo dalla riga di comando, come nell’esempio seguente:
mvn content-package:build
Se non diversamente specificato, gli obiettivi e i parametri del plug-in utilizzano vault
come nell’esempio seguente:
mvn content-package:install -Dvault.targetURL="https://192.168.1.100:4502/crx/packmgr/service.jsp"
Per gli obiettivi che utilizzano i proxy per l’AEM viene utilizzata la prima configurazione proxy valida trovata nelle impostazioni Maven. Se non viene trovata alcuna configurazione proxy, non viene utilizzato alcun proxy. Consulta la useProxy
parametro in Parametri comuni sezione.
I parametri riportati nella tabella seguente sono comuni a tutti gli obiettivi, tranne quando indicato nella Obiettivi colonna.
Nome | Tipo | Obbligatorio | Valore predefinito | Descrizione | Obiettivi |
---|---|---|---|---|---|
failOnError |
boolean |
No | false |
Un valore di true causa un errore nella generazione. Un valore di false fa in modo che la build ignori l’errore. |
Tutti gli obiettivi tranne package |
name |
String |
build : Sì, install : No, rm : Sì |
build : nessun valore predefinito, install : il valore della proprietà artifactId proprietà del progetto Maven |
Nome del pacchetto su cui intervenire | Tutti gli obiettivi tranne ls |
password |
String |
Sì | admin |
Password utilizzata per l’autenticazione con AEM | Tutti gli obiettivi tranne package |
serverId |
String |
No | ID server da cui recuperare il nome utente e la password per l'autenticazione | Tutti gli obiettivi tranne package |
|
targetURL |
String |
Sì | http://localhost:4502/crx/packmgr/service.jsp |
URL dell’API del servizio HTTP del gestore di pacchetti AEM | Tutti gli obiettivi tranne package |
timeout |
int |
No | 5 |
Timeout di connessione per la comunicazione con il servizio Gestione pacchetti, in secondi | Tutti gli obiettivi tranne package |
useProxy |
boolean |
No | true |
Un valore di true fa in modo che Maven utilizzi la prima configurazione proxy attiva trovata per inoltrare le richieste al gestore di pacchetti. |
Tutti gli obiettivi tranne package |
userId |
String |
Sì | admin |
Nome utente da autenticare con AEM | Tutti gli obiettivi tranne package |
verbose |
boolean |
No | false |
Abilita o disabilita la registrazione dettagliata | Tutti gli obiettivi tranne package |
Genera un pacchetto di contenuti già definito in un’istanza AEM.
Questo obiettivo non deve essere eseguito all’interno di un progetto Maven.
Tutti i parametri per l’obiettivo di build sono descritti in Parametri comuni sezione.
Installa un pacchetto nel repository. L’esecuzione di questo obiettivo non richiede un progetto Maven. L’obiettivo è associato a install
fase del ciclo di vita della build Maven.
Oltre ai seguenti parametri, consulta le descrizioni in Parametri comuni sezione.
Nome | Tipo | Obbligatorio | Valore predefinito | Descrizione |
---|---|---|---|---|
artifact |
String |
No | Il valore della proprietà artifactId proprietà del progetto Maven |
Una stringa del modulo groupId:artifactId:version[:packaging] |
artifactId |
String |
No | Nessuno | ID dell’artefatto da installare |
groupId |
String |
No | Nessuno | Il groupId dell’artefatto da installare |
install |
boolean |
No | true |
Determina se decomprimere automaticamente il pacchetto quando viene caricato |
localRepository |
org.apache.maven.artifact.repository.ArtifactRepository |
No | Il valore della proprietà localRepository variabile di sistema |
L’archivio Maven locale che non può essere configurato utilizzando la configurazione del plug-in in quanto viene sempre utilizzata la proprietà di sistema |
packageFile |
java.io.File |
No | L’artefatto principale definito per il progetto Maven | Nome del file del pacchetto da installare |
packaging |
String |
No | zip |
Tipo di pacchetto dell'artefatto da installare |
pomRemoteRepositories |
java.util.List |
Sì | Il valore della proprietà remoteArtifactRepositories proprietà definita per il progetto Maven |
Questo valore non può essere configurato utilizzando la configurazione del plug-in e deve essere specificato nel progetto. |
project |
org.apache.maven.project.MavenProject |
Sì | Progetto per il quale è configurato il plug-in | Il progetto Maven che è implicito perché il progetto contiene la configurazione del plug-in. |
repositoryId (POM) repoID (riga di comando) |
String |
No | temp |
ID dell’archivio da cui viene recuperato l’artefatto |
repositoryUrl (POM) repoURL (riga di comando) |
String |
No | Nessuno | URL dell’archivio da cui viene recuperato l’artefatto |
version | Stringa | No | Nessuno | Versione dell'artefatto da installare |
Elenca i pacchetti distribuiti in Gestione pacchetti.
Tutti i parametri dell’obiettivo ls sono descritti in Parametri comuni sezione.
Rimuove un pacchetto da Gestione pacchetti.
Tutti i parametri dell'obiettivo rm sono descritti nel Parametri comuni sezione.
Disinstalla un pacchetto. Il pacchetto rimane nel server nello stato disinstallato.
Tutti i parametri dell'obiettivo di disinstallazione sono descritti in Parametri comuni sezione.
Crea un pacchetto di contenuti. La configurazione predefinita dell'obiettivo del pacchetto include il contenuto della directory in cui vengono salvati i file compilati. L’esecuzione dell’obiettivo del pacchetto richiede che la fase di compilazione della build sia stata completata. L’obiettivo del pacchetto è associato alla fase del pacchetto del ciclo di vita della build Maven.
Oltre ai seguenti parametri, consulta la descrizione della name
parametro in Parametri comuni sezione.
Nome | Tipo | Obbligatorio | Valore predefinito | Descrizione |
---|---|---|---|---|
archive |
org.apache.maven.archiver.MavenArchiveConfiguration |
No | Nessuno | Configurazione archivio da utilizzare |
builtContentDirectory |
java.io.File |
Sì | Valore della directory di output della build Maven | Directory contenente il contenuto da includere nel pacchetto |
dependencies |
java.util.List |
No | Nessuno | |
embeddedTarget |
java.lang.String |
No | Nessuno | |
embeddeds |
java.util.List |
No | Nessuno | |
failOnMissingEmbed |
boolean |
Sì | false |
Un valore di true genera un errore di compilazione quando un artefatto incorporato non viene trovato nelle dipendenze del progetto. Un valore di false fa in modo che la build ignori tali errori. |
filterSource |
java.io.File |
No | Nessuno | Questo parametro definisce un file che specifica l'origine del filtro del workspace. I filtri specificati nella configurazione e inseriti tramite incorporamenti o pacchetti secondari vengono uniti al contenuto del file. |
filters |
com.day.jcr.vault.maven.pack.impl.DefaultWorkspaceFilter |
No | Nessuno | Questo parametro contiene elementi filtro che definiscono il contenuto del pacchetto. Quando vengono eseguiti, i filtri vengono inclusi nel filter.xml file. Consulta la Utilizzo dei filtri sezione successiva. |
finalName |
java.lang.String |
Sì | Il finalName definito nel progetto Maven (fase di build) |
Il nome del file ZIP del pacchetto generato, senza .zip estensione file |
group |
java.lang.String |
Sì | Il groupID definito nel progetto Maven |
Il groupId del pacchetto di contenuti generato che fa parte del percorso di installazione di destinazione per il pacchetto di contenuti |
outputDirectory |
java.io.File |
Sì | La directory di build definita nel progetto Maven | Directory locale in cui viene salvato il pacchetto di contenuti |
prefix |
java.lang.String |
No | Nessuno | |
project |
org.apache.maven.project.MavenProject |
Sì | Nessuno | Il progetto Maven |
properties |
java.util.Map |
No | Nessuno | Questi parametri definiscono proprietà aggiuntive che è possibile impostare in properties.xml file. Queste proprietà non possono sovrascrivere le seguenti proprietà predefinite: group (utilizzare group parametro da impostare), name (utilizzare name parametro da impostare), version (utilizzare version parametro da impostare), description (ricavato dalla descrizione del progetto), groupId (groupId del descrittore di progetto Maven), artifactId (artifactId del descrittore di progetto Maven), dependencies (utilizzare dependencies parametro da impostare), createdBy (il valore del user.name proprietà di sistema), created (l'ora di sistema corrente), requiresRoot (utilizzare requiresRoot parametro da impostare), packagePath (generato automaticamente dal nome del gruppo e del pacchetto) |
requiresRoot |
boolean |
Sì | false | Definisce se il pacchetto richiede la radice. Questo diventerà il requiresRoot proprietà del properties.xml file. |
subPackages |
java.util.List |
No | Nessuno | |
version |
java.lang.String |
Sì | Versione definita nel progetto Maven | Versione del pacchetto di contenuti |
workDirectory |
java.io.File |
Sì | La directory definita nel progetto Maven (fase di build) | Directory contenente il contenuto da includere nel pacchetto |
Utilizza l’elemento filters per definire il contenuto del pacchetto. I filtri vengono aggiunti al workspaceFilter
elemento nel META-INF/vault/filter.xml
del pacchetto.
Nell'esempio di filtro seguente viene illustrata la struttura XML da utilizzare:
<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>
Il mode
definisce il modo in cui il contenuto viene influenzato dall’archivio quando il pacchetto viene importato. È possibile utilizzare i seguenti valori:
Se il filtro non contiene mode
, il valore predefinito di replace
viene utilizzato.
Nome | Tipo | Obbligatorio | Valore predefinito | Descrizione |
---|---|---|---|---|
detail |
boolean |
No | false |
Determina se visualizzare tutte le proprietà impostabili per ogni obiettivo |
goal |
String |
No | Nessuno | Questi parametri definiscono il nome dell’obiettivo per il quale visualizzare la guida. Se non viene specificato alcun valore, viene visualizzata la guida per tutti gli obiettivi. |
indentSize |
int |
No | 2 |
Numero di spazi da utilizzare per il rientro di ciascun livello (se definito, deve essere positivo) |
lineLength |
int |
No | 80 |
Lunghezza massima di una linea di visualizzazione (deve essere positiva se definita) |
Sostituire i file di configurazione del pacchetto predefiniti per personalizzare le proprietà del pacchetto. Ad esempio, includi una miniatura per distinguere il pacchetto in Gestione pacchetti.
I file di origine possono trovarsi in qualsiasi punto del file system. Nel file POM, definisci le risorse di build per copiare i file sorgente in target/vault-work/META-INF
da includere nel pacchetto.
Il codice POM seguente aggiunge i file nel META-INF
cartella dell'origine del progetto nel pacchetto:
<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>
Il codice POM seguente aggiunge al pacchetto solo un'immagine in miniatura. L'immagine di anteprima deve essere denominata thumbnail.png
, e deve trovarsi nel META-INF/vault/definition
cartella del pacchetto. In questo esempio, il file di origine si trova nel /src/main/content/META-INF/vault/definition
cartella del progetto:
<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>
L’archetipo del progetto AEM più recente implementa la struttura di pacchetti di best practice sia per le implementazioni on-premise che per quelle AMS ed è consigliato per tutti i progetti AEM.
Per maggiori dettagli, vedi Struttura dei progetti AEM nella documentazione as a Cloud Service dell'AEM, nonché Archetipo progetto AEM documentazione. Entrambi sono pienamente supportati per AEM 6.5.