Show Menu
ARGOMENTI×

Gestione dei pacchetti con il cielo

Utilizzate il plug-in Content Package Maven per integrare le attività di gestione dei pacchetti nei vostri progetti Maven. Gli obiettivi e i parametri del plug-in consentono di automatizzare molte delle attività che normalmente si eseguono utilizzando la pagina Gestione pacchetti o la riga di comando FileVault:
  • Creare nuovi pacchetti da file nel file system.
  • Installate e disinstallate i pacchetti sul server CRX o CQ.
  • Creare pacchetti già definiti sul server.
  • Ottenete un elenco dei pacchetti installati sul server.
  • Rimuovete un pacchetto dal server.

Aggiunta del plug-in Content Package Maven al file POM

Per utilizzare il plug-in Content Package Maven, aggiungete il seguente elemento plug-in all’interno dell’elemento build del file POM:
<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>

Per consentire a Maven di scaricare il plug-in, utilizzate il profilo fornito nella sezione Acquisizione del plug-in di Content Package Maven in questa pagina.

Obiettivi del plug-in Content Package Maven

Gli obiettivi e i parametri dell'obiettivo forniti dal plug-in Content Package sono descritti nelle sezioni che seguono. 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.
Prefisso plug-in
Il prefisso del plug-in è content-package. Utilizzate questo prefisso per eseguire un obiettivo dalla riga di comando, come nell'esempio seguente:
mvn content-package:build

Prefisso parametro
Salvo diversa indicazione, gli obiettivi e i parametri del plugin usano il prefisso vault, come nell'esempio seguente:
mvn content-package:install -Dvault.targetURL="https://192.168.1.100:4502/crx/packmgr/service.jsp"

Proxy
Gli obiettivi che utilizzano i proxy per il server CRX o CQ utilizzano la prima configurazione proxy valida trovata nelle impostazioni Maven. Se non viene trovata alcuna configurazione proxy, non viene utilizzato alcun proxy. Vedete il parametro useProxy nella sezione Impostazioni comuni.

Parametri comuni

I parametri riportati nella tabella seguente sono comuni a tutti gli obiettivi, tranne se indicati nella colonna Obiettivi.
Nome Tipo Obbligatorio Valore predefinito Descrizione Obiettivi
failOnError booleano No false Un valore di true causa il fallimento della build in caso di errore. Un valore di false fa sì che la build ignori l'errore. Tutti gli obiettivi tranne il pacchetto.
nome Stringa build: Sì , installazione: No rm:Yes Build: Nessuna impostazione predefinita. install: Il valore della proprietà artifactId del progetto Maven. Nome del pacchetto su cui agire. Tutti gli obiettivi tranne ls.
password Stringa admin La password utilizzata per l'autenticazione con il server CRX. Tutti gli obiettivi tranne il pacchetto.
serverId Stringa No L'ID server da cui recuperare il nome utente e la password per l'autenticazione. Tutti gli obiettivi tranne il pacchetto.
targetURL Stringa http://localhost:4502/ crx/packmgr/ service.jsp L'URL dell'API del servizio HTTP del gestore pacchetti CRX. Tutti gli obiettivi tranne il pacchetto.
timeout int No 5 Timeout della connessione per la comunicazione con il servizio di gestione pacchetti, in secondi. Tutti gli obiettivi tranne il pacchetto.
useProxy booleano No vero Stabilisce se utilizzare le configurazioni proxy dal file delle impostazioni Maven. Un valore di true causa l'utilizzo della prima configurazione proxy attiva trovata per le richieste proxy al gestore pacchetti. Il valore false non causa l'utilizzo di alcun proxy. Tutti gli obiettivi tranne il pacchetto.
userId Stringa admin Nome utente da autenticare con il server CRX. Tutti gli obiettivi tranne il pacchetto.
verbose booleano No false Abilita o disabilita la registrazione dettagliata. Un valore di true abilita la registrazione dettagliata. Tutti gli obiettivi tranne il pacchetto.

build

Crea un pacchetto di contenuti già definito in un’istanza di AEM.
Questo obiettivo non deve essere eseguito all'interno di un progetto Maven.

Parametri

Tutti i parametri per l'obiettivo di compilazione sono descritti nella sezione Parametri Parametri comuni comuni.

Esempio

Nell’esempio seguente viene creato il pacchetto workflow-fagioli installato nell’istanza AEM con l’indirizzo IP 10.36.79.223. L'obiettivo viene eseguito utilizzando il seguente comando:
mvn content-package:build

Il seguente file POM si trova nella directory corrente dello strumento della riga di comando. Il POM specifica il nome del pacchetto e l’URL del servizio del pacchetto.
<project xmlns="https://maven.apache.org/POM/4.0.0"
  xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://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>https://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
  </configuration>
     </plugin>
 </plugins>
    </build>
</project>

install

Installa un pacchetto nel repository. L'esecuzione di questo obiettivo non richiede un progetto Maven. L'obiettivo è legato alla fase di installazione del ciclo di vita della build Maven.

Parametri

Oltre ai seguenti parametri, vedete le descrizioni nella sezione Parametri comuni .
Nome Tipo Obbligatorio Valore predefinito Descrizione
manufatto Stringa No Il valore della proprietà artifactId del progetto Maven. Una stringa del modulo groupId:artifactId:version[:package].
artifactId Stringa No ID dell'artifact da installare
groupId Stringa No Il groupId dell'artifact da installare
install booleano No vero Determina se rimuovere automaticamente il pacchetto quando viene caricato. Il valore true decomprime il pacchetto e false non decomprime il pacchetto.
localRepository org.apache.maven. artefatto. repository. ArtifactRepository No Il valore della variabile di sistema localRepository. Il repository locale di Maven. Impossibile configurare questo parametro con la configurazione del plug-in. La proprietà di sistema viene sempre utilizzata.
packageFile java.io.File No Il manufatto principale definito per il progetto Maven. Il nome del file del pacchetto da installare.
imballaggio Stringa No zip Tipo di imballaggio dell'artefatto da installare
pomRemoteRepositories java.util.List Il valore della proprietà remoteActiveRepositories definita per il progetto Maven. Impossibile configurare questo valore con la configurazione del plug-in. Il valore deve essere specificato nel progetto.
project org.apache.maven. project.MavenProject Progetto per il quale è configurato il plug-in. Il progetto Maven. Il progetto è implicito perché il progetto contiene la configurazione del plug-in.
repositoryId (POM) repoID (riga di comando) Stringa No temp ID del repository da cui viene recuperato l'artifact. In un POM, utilizzare repositoryID. In una riga di comando, utilizzare repoID.
repositoryUrl (POM) repoURL (riga di comando) Stringa No URL del repository da cui viene recuperato l'artifact. In un POM, utilizzate repositoryURL. In una riga di comando, utilizzate repoURL.
version Stringa No Versione dell'artifact da installare.

Esempio

Nell'esempio seguente viene creato un pacchetto contenente il pacchetto OSGi del flusso di lavoro (vedere l'esempio per l'obiettivo di compilazione ) e quindi installato il pacchetto. Poiché l'obiettivo di installazione è associato alla fase di installazione del pacchetto, il seguente comando esegue l'obiettivo di installazione:
mvn install

<project xmlns="https://maven.apache.org/POM/4.0.0"
    xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="https://maven.apache.org/POM/4.0.0
    https://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>https://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

Elenca i pacchetti distribuiti in Gestione pacchetti.

Parametri

Tutti i parametri dell'obiettivo ls sono descritti nella sezione Parametri Parametri comuni comuni.

Esempio

Nell’esempio seguente sono elencati i pacchetti installati nell’istanza di AEM con l’indirizzo IP 10.36.79.223. L'obiettivo viene eseguito utilizzando il seguente comando:
mvn content-package:ls

Il seguente file POM si trova nella directory corrente dello strumento della riga di comando. Il POM specifica l’URL del servizio del pacchetto.
<project xmlns="https://maven.apache.org/POM/4.0.0"
  xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://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>https://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
  </configuration>
      </plugin>
   </plugins>
     </build>
</project>

rm

Rimuove un pacchetto da Gestione pacchetti.

Parametri

Tutti i parametri dell'obiettivo rm sono descritti nella sezione Parametri Parametri comuni comuni.

Esempio

Nell’esempio seguente viene rimosso il pacchetto workfow-mia installato nell’istanza AEM con l’indirizzo IP 10.36.79.223. L'obiettivo viene eseguito utilizzando il seguente comando:
mvn content-package:rm

Il seguente file POM si trova nella directory corrente dello strumento della riga di comando. Il POM specifica l’URL del servizio pacchetto e il nome del pacchetto.
<project xmlns="https://maven.apache.org/POM/4.0.0"
  xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://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>https://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
  </configuration>
      </plugin>
   </plugins>
     </build>
</project>

uninstall

Disinstalla un pacchetto. Il pacchetto rimane sul server nello stato disinstallato.

Parametri

Tutti i parametri dell'obiettivo di disinstallazione sono descritti nella sezione Parametri Parametri comuni comuni.

Esempio

L’esempio seguente disinstalla il pacchetto workflow-fagioli installato nell’istanza AEM con l’indirizzo IP 10.36.79.223. L'obiettivo viene eseguito utilizzando il seguente comando:
mvn content-package:uninstall

Il seguente file POM si trova nella directory corrente dello strumento della riga di comando. Il POM specifica il nome del pacchetto e l’URL del servizio del pacchetto.
<project xmlns="https://maven.apache.org/POM/4.0.0"
  xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://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>https://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
  </configuration>
     </plugin>
 </plugins>
    </build>
</project>

package

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 il completamento della fase di compilazione. L'obiettivo del pacchetto è legato alla fase del pacchetto del ciclo di vita della build Maven.

Parametri

Oltre ai seguenti parametri, vedete la descrizione del name parametro nella sezione Parametri comuni .
Nome Tipo Obbligatorio Valore predefinito Descrizione
archive org.apache.maven. archiver. MavenArchiveConfiguration No Configurazione dell'archivio da utilizzare. Consulta la documentazione per Maven Archiver .
buildContentDirectory java.io.File Il valore della directory di output della build Maven. La directory che contiene il contenuto da includere nel pacchetto.
dipendenze java.util.List No
embeddedTarget java.lang.String No
embeddeds java.util.List No
failOnMissingEmbed booleano false Se si imposta il valore true, la build non riesce se non viene trovato un artifact incorporato nelle dipendenze del progetto. Un valore disattivato fa sì che la build ignori l'errore.
filterSource java.io.File No Un file che specifica l'origine del filtro dell'area di lavoro. I filtri specificati nella configurazione e iniettati tramite incorporamenti o pacchetti secondari vengono uniti al contenuto del file.
filter com.day.jcr. vault.maven.pack.impl. DefaultWorkspaceFilter No Contiene elementi di filtro che definiscono il contenuto del pacchetto. Una volta eseguiti, i filtri vengono inclusi nel file filter.xml. Vedere la sezione Utilizzo dei filtri di seguito.
finalName java.lang.String Il nome finale definito nel progetto Maven (fase di costruzione). Il nome del file ZIP del pacchetto generato, senza l'estensione .zip.
gruppo java.lang.String GroupID definito nel progetto Maven. Il groupId del pacchetto di contenuto generato. Questo valore fa parte del percorso di installazione di destinazione per il pacchetto di contenuti.
outputDirectory java.io.File La directory di compilazione definita nel progetto Maven. La directory locale in cui viene salvato il pacchetto di contenuto.
prefix java.lang.String No
project org.apache.maven. project.MavenProject Il progetto Maven.
proprietà java.util.Map No Ulteriori proprietà che è possibile impostare nel file properties.xml. Queste proprietà non possono sovrascrivere le seguenti proprietà predefinite:
  • group: Utilizzare il parametro group per impostare
  • name: Utilizzate il parametro name per impostare
  • version: Utilizzare il parametro version per impostare
  • descrizione: Impostato dalla descrizione del progetto
  • groupId: groupId del descrittore del progetto Maven
  • artifactId: artifactId del descrittore del progetto Maven
  • dipendenze: Utilizzare il parametro dipendenze per impostare
  • createBy: Il valore della proprietà di sistema user.name
  • create: Ora del sistema corrente
  • requirementsRoot: Utilizzare il parametro requirementsRoot per impostare
  • packagePath: Generazione automatica dal nome del gruppo e del pacchetto
requirementsRoot booleano false Definisce se il pacchetto richiede root. Questo diventerà la proprietà <code>requirementsRoot</code> del file properties.xml.
subPackages java.util.List No
version java.lang.String La versione definita nel progetto Maven Versione del pacchetto di contenuto.
workDirectory java.io.File La directory definita nel progetto Maven (fase di costruzione). La directory che contiene il contenuto da includere nel pacchetto.

Utilizzo dei filtri

Utilizzate l'elemento filter per definire il contenuto del pacchetto. I filtri vengono aggiunti all'elemento workspaceFilter nel META-INF/vault/filter.xml file del pacchetto.
L'esempio di filtro seguente mostra 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>

Modalità di importazione
L' mode elemento definisce in che modo il contenuto del repository viene interessato quando il pacchetto viene importato. È possibile utilizzare i seguenti valori:
  • ​Unisci: Viene aggiunto il contenuto del pacchetto che non è già presente nella directory archivio. Il contenuto presente nel pacchetto e nell'archivio rimane invariato. Nessun contenuto viene rimosso dalla directory archivio.
  • ​Sostituisci: Il contenuto del pacchetto che non si trova nella directory archivio viene aggiunto alla directory archivio. Il contenuto del repository viene sostituito con il contenuto corrispondente nel pacchetto. Il contenuto viene rimosso dalla directory archivio quando non esiste nel pacchetto.
  • ​Aggiorna: Il contenuto del pacchetto che non si trova nella directory archivio viene aggiunto alla directory archivio. Il contenuto del repository viene sostituito con il contenuto corrispondente nel pacchetto. Il contenuto esistente viene rimosso dalla directory archivio.
Se il filtro non contiene mode elementi, viene utilizzato il valore predefinito di replace .

Esempio

Nell'esempio seguente viene creato un pacchetto che contiene il bundle OSGi di workflow-fagioli. Il file POM identifica la directory jcr_root come valore della proprietà buildContentDirectory. La directory jcr_root contiene il file JAR del bundle nella struttura di directory che riflette il repository:
jcr_root/apps/myapp/install/workflow-mbean-0.03-SNAPSHOT.jar
Poiché l'obiettivo è associato alla fase di creazione del pacchetto, il seguente comando esegue l'obiettivo del pacchetto:
mvn package
<project xmlns="https://maven.apache.org/POM/4.0.0"
    xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="https://maven.apache.org/POM/4.0.0
    https://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>https://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>package</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

Invece di esprimere l'obiettivo nella package sezione del plug-in executions , potete utilizzare content-package come valore dell' packaging elemento di progetto:
<project xmlns="https://maven.apache.org/POM/4.0.0"
    xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="https://maven.apache.org/POM/4.0.0
    https://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>https://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

aiuto

Parametri

Nome
Tipo
Obbligatorio
Valore predefinito
Descrizione
detail
booleano
No
false
Determina se visualizzare tutte le proprietà impostabili per ciascun obiettivo. Il valore true visualizza tutte le proprietà impostabili.
goal
Stringa
No
Nome dell'obiettivo per il quale visualizzare l'aiuto. Se non viene specificato alcun valore, viene visualizzata la guida per tutti gli obiettivi.
indentSize
int
No
2
Il numero di spazi da utilizzare per il rientro di ciascun livello. Se si specifica un valore, il valore deve essere positivo.
lineLength
int
No
80
Lunghezza massima di una linea di visualizzazione. Se si specifica un valore, il valore deve essere positivo.

Come ottenere il plug-in Contenuti Package Maven

Il plug-in è disponibile nell'archivio pubblico di Adobe. Per scaricare il plugin, aggiungete il seguente profilo Maven al file delle impostazioni Maven e attivatelo. Quando si utilizza un comando Maven, il plug-in viene scaricato nel repository locale, se necessario.
L’archivio delle versioni pubbliche di Adobe non è accessibile da browser, pertanto la navigazione all’URL dell’archivio tramite il browser Web genera un errore Non trovato. Tuttavia, Maven è in grado di accedere alle directory del repository.
<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>

Incorporazione di pacchetti OSGi in un pacchetto di contenuti

Utilizzate il plug-in Content Package Maven per incorporare i bundle OSGi nel pacchetto di contenuti. Per incorporare il bundle, implementate le seguenti configurazioni:
  • Il bundle deve essere dichiarato come una dipendenza dal progetto Maven.
  • La configurazione del plug-in fa riferimento al bundle utilizzando il percorso desiderato del bundle nel pacchetto.
Nell’esempio seguente POM crea un pacchetto contenente il bundle Apache Sling JCR UserManager. Nel pacchetto, il bundle JAR si trova nella jcr_root/apps/myapp/install cartella:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="https://maven.apache.org/POM/4.0.0"
             xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="https://maven.apache.org/POM/4.0.0
             https://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>

Inclusione di un'immagine miniatura o di un file di proprietà nel pacchetto

Sostituite i file di configurazione del pacchetto predefiniti per personalizzare le proprietà del pacchetto. Ad esempio, includete una miniatura per distinguere il pacchetto in Gestione pacchetti e Condivisione pacchetti.
Nel pacchetto, i file specifici di FileVault si trovano nella cartella /META-INF/vault. I file sorgente possono trovarsi ovunque nel file system. Nel file POM, definite le risorse di build per copiare i file sorgente nel file target/vault-work/META-INF per l’inclusione nel pacchetto.
Il seguente codice POM aggiunge al pacchetto i file nella cartella META-INF dell’origine del progetto:
<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 seguente codice POM aggiunge al pacchetto solo una miniatura. L’immagine in miniatura deve essere denominata thumbnail.png e deve trovarsi nella cartella META-INF/vault/definition del pacchetto. In questo esempio, il file di origine si trova nella cartella /src/main/content/META-INF/vault/definition 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>

Utilizzo Dei Tipi Di Archivi Per Generare Progetti AEM

Numerosi archetipi Maven sono disponibili per la generazione di progetti AEM. Utilizzate l'archetipo corrispondente ai vostri obiettivi di sviluppo:
Il progetto Apache Sling offre anche archetipi utili nello sviluppo di AEM. Questi sono documentati all'indirizzo https://sling.apache.org/site/maven-archetypes.html .
Ogni tipo di archetipo genera i seguenti elementi:
  • Struttura delle cartelle del progetto.
  • File POM.
  • FileVault di configurazione.
Gli artefatti Archetype sono disponibili nell'archivio pubblico di Adobe Maven. Per scaricare ed eseguire un archetype, identificare l'archetype e l'archivio Adobe utilizzando i parametri del archetype Maven:generate command:
mvn archetype:generate -DarchetypeGroupId=com.day.jcr.vault \
-DarchetypeArtifactId={id_of_archetype} -DarchetypeVersion=1.0.2 \
-DarchetypeRepository=adobe-public-releases

Il plugin Maven archetype utilizza la modalità interattiva nella shell o nella riga di comando per raccogliere informazioni sul progetto. Le informazioni fornite vengono utilizzate per configurare diverse proprietà del progetto, come i nomi delle cartelle e gli ID degli artifact.
File POM
I file POM generati includono comandi per la compilazione del codice, la creazione dei bundle e la distribuzione in AEM nei pacchetti. Le groupID proprietà artifactId , version e name le proprietà del progetto Maven vengono popolate automaticamente utilizzando i valori forniti al prompt archetype:generate interattivo Maven.
Potreste voler modificare i seguenti valori predefiniti nel file pom.xml generato:
  • Nome del server CQ o indirizzo IP: Il valore predefinito è localhost . L' crx.host elemento seguente project/properties contiene questo valore.
  • Numero di porta per il server CQ: Il valore predefinito è 4502 . L' crx.port elemento seguente project/properties contiene questo valore.
  • Versione del plug-in Content Package Maven: Utilizzate la versione più recente come contenuto dell' version elemento per il plug-in con artifactId di content-package-maven-plugin . Il valore predefinito è 0.0.24 .
Utilizzo degli archetipi
  1. In una finestra shell o in un prompt dei comandi, immettere il archetype:generate comando Paradiso. Quando richiesto, immettete i valori per i parametri rimanenti.
    Per informazioni su ciascun parametro, fare riferimento alla sezione relativa al tipo di archetipo utilizzato.
  2. Usate un editor di testo per aprire il file pom.xml e modificare i valori predefiniti in base alle vostre esigenze.
  3. Compilate le cartelle generate con le risorse.
  4. Immettere il mvn clean install comando.

simple-content-package-archetype

Crea un progetto maven adatto all’installazione di risorse per una semplice applicazione AEM. La struttura delle cartelle è quella utilizzata sotto la /apps cartella dell’archivio AEM. Il POM definisce i comandi per creare pacchetti delle risorse inserite nelle cartelle e installare i pacchetti nell’istanza di AEM.
Proprietà artefatto Archetype:
  • ID gruppo: com.day.jcr.vault
  • ID artefatto: simple-content-package-archetype
  • Versione: 1.0.2
  • Archivio: adobe-public-releases
Maven, comando:
mvn archetype:generate -DarchetypeGroupId=com.day.jcr.vault \
-DarchetypeArtifactId=simple-content-package-archetype \
-DarchetypeVersion=1.0.2 \
-DarchetypeRepository=adobe-public-releases

Parametri Archetype:
  • groupId: GroupId del pacchetto di contenuto generato da Maven. Il valore viene utilizzato automaticamente nel file POM.
  • artifactId: Nome del pacchetto di contenuti. Il valore viene utilizzato anche come nome della cartella del progetto.
  • version:Versione del pacchetto di contenuto.
  • pacchetto: Questo valore non viene utilizzato per il tipo semplice-content-package-archetype.
  • appsFolderName: Nome della cartella sotto /apps.
  • artifactName: Descrizione del pacchetto di contenuti.
  • packageGroup: Nome del gruppo di pacchetti di contenuto. Questo valore configura il parametro del gruppo per l'obiettivo Package del plug-in Content Package Maven.
Struttura delle cartelle:
${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

Esegue le stesse attività del tipo semplice-content-package-archetype, nonché i download e include un artefatto proveniente da un repository pubblico di Maven.
Proprietà bundle Archetype:
  • ID gruppo: com.day.jcr.vault
  • ID artefatto: simple-content-package-with-embedded-archetype
  • Versione: 1.0.2
  • Archivio: adobe-public-releases
Maven, comando:
mvn archetype:generate -DarchetypeGroupId=com.day.jcr.vault \
-DarchetypeArtifactId=simple-content-package-with-embedded-archetype \
-DarchetypeVersion=1.0.2 \
-DarchetypeRepository=adobe-public-releases

Parametri Archetype:
  • groupId: GroupId del pacchetto di contenuto generato da Maven. Il valore viene utilizzato automaticamente nel file POM.
  • artifactId: Nome del pacchetto di contenuti. Il valore viene utilizzato anche come nome della cartella del progetto.
  • version:Versione del pacchetto di contenuto.
  • pacchetto: Parametro non utilizzato.
  • appsFolderName: Nome della cartella sotto /apps.
  • artifactName: Descrizione del pacchetto di contenuti.
  • embeddedArtifactId: L'ID dell'artifact da incorporare nel pacchetto di contenuto.
  • embeddedGroupId: L'ID gruppo dell'artifact da incorporare.
  • embeddedVersion: Versione dell’artefatto da incorporare.
  • packageGroup: Nome del gruppo di pacchetti di contenuto. Questo valore configura il parametro del gruppo per l'obiettivo Package del plug-in Content Package Maven.
Struttura delle cartelle:
${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

multimodulo-content-package-archetype

Crea un progetto maven che include la struttura di cartelle per lo sviluppo di un’applicazione AEM e l’installazione di risorse sul server.
La bundle cartella contiene la struttura di cartelle in cui sono memorizzati i file sorgente Java e JUnit che vengono sviluppati. Il file pom.xml in questa cartella crea il bundle OSGi. I seguenti valori nel POM identificano l’artefatto e il bundle:
  • artifactID: ${artifactID}-bundle .
  • Bundle-SymbolicName: ${groupId}.${artifactId}-bundle .
${artifactID} e ${groupId} sono i valori forniti per questi parametri durante l'esecuzione degli archetipi.
La content cartella contiene le risorse installate nell’istanza AEM. Il valore di artifactID è ${artifactID}multimodule-bundle .
La cartella principale contiene il POM principale che gestisce i plug-in e le dipendenze di Maven.
Proprietà bundle Archetype:
  • ID gruppo: com.day.jcr.vault
  • ID artefatto: multimodule-content-package-archetype
  • Versione: 1.0.2
  • Archivio: adobe-public-releases
Maven, comando:
mvn archetype:generate -DarchetypeGroupId=com.day.jcr.vault \
-DarchetypeArtifactId=multimodule-content-package-archetype \
-DarchetypeVersion=1.0.2 \
-DarchetypeRepository=adobe-public-releases

Parametri Archetype:
  • groupId: GroupId del pacchetto di contenuto generato da Maven. Il valore viene utilizzato automaticamente nel file POM.
  • artifactId: Nome del pacchetto di contenuti. Il valore viene utilizzato anche come nome della cartella del progetto.
  • version:Versione del pacchetto di contenuto.
  • pacchetto: Questo valore non viene utilizzato per multimodulo-content-package-archetype.
  • appsFolderName: Nome della cartella sotto /apps.
  • artifactName: Descrizione del pacchetto di contenuti.
  • packageGroup: Nome del gruppo di pacchetti di contenuto. Questo valore configura il parametro del gruppo per l'obiettivo Package del plug-in Content Package Maven.
Struttura delle cartelle:
${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