Plug-in Maven di Build Analyzer nel SDK di AEM as a Cloud Service maven-analyzer-plugin
Il Plug-in Maven di Build Analyzer nel Software Development Kit (SDK) di AEM as a Cloud Service analizza la struttura dei vari progetti di pacchetti di contenuti.
Per informazioni su come includerlo in un progetto Maven, di AEM, vedi la documentazione del Plug-in Maven.
Il Plug-in utilizza l’SDK più recente disponibile, anziché quello configurato nel progetto.
La tabella che segue descrive gli analizzatori eseguiti come parte di questo passaggio.
api-regions-exportsimports
Verifica se la dichiarazione Export-Package di altri bundle inclusi nel progetto Maven soddisfa le dichiarazione Import-Package di tutti i bundle OSGI. Un errore è simile al seguente:
[ERROR] org.acme:mybundle:0.0.1-SNAPSHOT: Bundle org.acme:mybundle:0.0.1-SNAPSHOT is importing package(s) org.acme.foo in start level 20 but no bundle is exporting these for that start level.
Per risolvere i problemi, verifica se il bundle che fornisce il pacchetto è incluso nella distribuzione oppure, in alternativa, esamina il manifesto del bundle che ritieni debba effettuare l’esportare per stabilire se è stato utilizzato il nome o la versione errata.
bundle-unversioned-packages
Verifica se i bundle OSGi specificano una versione con una dichiarazione Export-Package e un intervallo di versioni con una dichiarazione Import-Package. Un errore è simile al seguente:
[ERROR] org.acme:mybundle:0.0.1-SNAPSHOT: Bundle org.acme:mybundle:0.0.1-SNAPSHOT is exporting package org.acme.foo without a version.
Per la risoluzione dei problemi, assicurati di aggiungere una package-info.java
al pacchetto specificando la versione da esportare.
requirements-capabilities
Verifica se le dichiarazioni delle funzionalità di altri bundle inclusi nel progetto Maven soddisfano tutte le dichiarazioni dei requisiti definite nei bundle OSGI. Un errore è simile al seguente:
[ERROR] org.acme:mybundle:0.0.1-SNAPSHOT: Artifact org.acme:mybundle:0.0.1-SNAPSHOT requires org.foo.bar in start level 20 but no artifact is providing a matching capability in this start level.
Per risolvere i problemi, esamina il manifesto del bundle che ritieni debba dichiarare una funzionalità per stabilire il motivo della mancata dichiarazione oppure verifica nel manifesto del bundle richiedente se il requisito riportato è corretto.
bundle-resources
Visualizza un avviso se un bundle include contenuto iniziale specificato con l’intestazione Sling-Bundle-Resources, che è problematica nell’ambiente a cluster di AEM as a Cloud Service. L’avviso si presenta così:
[WARNING] org.acme:mybundle:0.0.1-SNAPSHOT: Found bundle resources : [/libs/sling/explorer!/resources/explorer]
Per risolvere i problemi relativi alla conversione delle risorse in istruzioni Repoinit, vedi la documentazione di Repoinit.
api-regions
api-regions-check-order
api-regions-dependencies
api-regions-duplicates
api-regions-crossfeature-dups
Verifica che i bundle OSGI del cliente non abbiano dichiarazioni Export-Package che sovrascrivano l’API pubblica di AEM as a Cloud Service
[WARNING] org.acme:mybundle:0.0.1-SNAPSHOT: Package overlap found between region global and bundle org.acme:mybundle:0.0.1.SNAPSHOT which comes from feature: [org.acme:myproject.analyse:slingosgifeature:0.0.1-SNAPSHOT]. Both export package: com.day.util
Per risolvere il problema, evita di esportare un pacchetto che fa parte dell’API pubblica di AEM.
repoinit
bundle-nativecode
configuration-api
Verifica importanti configurazioni OSGi.
Configuration org.apache.felix.webconsole.internal.servlet.OsgiManager: Configuration is not allowed (com.mysite:mysite.all:1.0.0-SNAPSHOT|com.mysite:mysite.ui.config:1.0.0-SNAPSHOT)
region-deprecated-api
Verifica l’eventuale utilizzo di API obsolete
[WARNING] com.mysite:mysite.core:1.0.0-SNAPSHOT: Usage of deprecated package found : org.apache.sling.settings : Avoid these features at runtime: run modes, file system access (com.mysite:mysite.all:1.0.0-SNAPSHOT)
artifact-rules
Convalida le dipendenze come bundle e pacchetti di contenuto per evitare problemi noti negli artefatti.
[WARNING] [artifact-rules] com.adobe.acs:acs-aem-commons-bundle:5.0.4: Use at least version 5.0.10 (com.mysite:mysite.all:1.0.0-SNAPSHOT)
aem-env-var
Verifica l’utilizzo delle variabili env in base alla Guida alla denominazione delle variabili
[ERROR] Configuration org.apache.felix.webconsole.internal.servlet.OsgiManager: Value for property 'port' must not use env vars prefixed with INTERNAL_ or ADOBE_ (com.mysite1:my-site-1.all:1.0.0-SNAPSHOT|com.mysite1:my-site-1.ui.config:1.0.0-SNAPSHOT)
content-package-validation
Esegue i moduli di convalida del FileVault. Per impostazione predefinita, jackrabbit-docviewparser è abilitato e verifica che la sintassi del contenuto del codice XML sia corretta all’interno dei pacchetti che verranno installati durante l’implementazione.
[main] WARN org.apache.sling.feature.analyser.task.impl.CheckContentPackages - ValidationViolation: "jackrabbit-docviewparser: Invalid XML found: The reference to entity "se" must end with the ';' delimiter.", filePath=jcr_root/apps/somename/configs/com.adobe.test.Invalid.xml, nodePath=/apps/somename/configs/com.adobe.test.Invalid
Per risolvere il problema, controlla il file denominato dall’analizzatore per i problemi XML.
aem-provider-type
configurations-basic
Problemi noti
Di seguito è riportato un elenco di problemi noti durante l’utilizzo del plug-in Maven di Build Analyzer.
Impossibile eseguire il plug-in Maven di Build Analyzer nell’SDK locale
Quando utilizzi l’SDK locale con una versione del plug-in Maven di Build Analyzer precedente a 1.1.2
, l’esecuzione del plug-in potrebbe causare l’errore seguente. In questo caso, aggiorna il progetto alla versione più recente del plug-in.
[ERROR] Failed to execute goal com.adobe.aem:aemanalyser-maven-plugin:1.1.0:analyse (default-analyse) on project mysite.analyse: Execution default-analyse of goal com.adobe.aem:aemanalyser-maven-plugin:1.1.0:analyse failed: arraycopy: source index -1 out of bounds for char[65536] -> [Help 1]
Se hai utilizzato l’Archetipo progetto AEM per configurare il progetto, assicurati di regolare la proprietà nella radice Maven pom.xml
come indicato di seguito.
...
<properties>
...
<aemanalyser.version>1.1.2</aemanalyser.version> <!-- Make sure to use the latest release -->
...
</properties>