Plug-in Maven Build Analyzer du SDK AEM as a Cloud Service maven-analyzer-plugin
Le plug-in Maven Build Analyzer du SDK AEM as a Cloud Service analyse la structure des différents projets de packages de contenu.
Consultez la documentation du plug-in Maven pour savoir comment l’inclure dans un projet Maven AEM.
Le plug-in utilise le dernier SDK disponible plutôt que celui configuré dans le projet.
Vous trouverez ci-dessous un tableau décrivant les analyseurs exécutés au cours de cette étape.
api-regions-exportsimports
Vérifie si les déclarations Import-Package de tous les lots OSGI sont satisfaites par la déclaration Export-package d’autres lots inclus dans le projet Maven. Une erreur se présenterait comme suit :
[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.
Pour résoudre les problèmes, vérifiez si le lot contenant le package est inclus dans le déploiement ou examinez le manifeste du lot que vous prévoyez d’exporter pour déterminer si un nom incorrect ou une version erronée a été utilisé.
bundle-unversioned-packages
Vérifie si les lots OSGi spécifient une version avec une déclaration d’exportation du package et une plage de versions avec une déclaration d’importation du package. Une erreur se présenterait comme suit :
[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.
Pour résoudre le problème, veillez à ajouter un package-info.java
à ce package spécifiant la version à exporter.
requirements-capabilities
Vérifie si toutes les déclarations d’exigences faites dans les lots OSGI sont satisfaites par les déclarations de capacités d’autres lots inclus dans le projet Maven. Une erreur se présenterait comme suit :
[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.
Pour résoudre les problèmes, vérifiez le manifeste du lot censé contenir une déclaration de capacité afin de déterminer pourquoi elle n’y figure pas ou examinez le manifeste du lot requis pour vérifier que l’exigence qu’il contient est correcte.
bundle-resources
Émet un avertissement si un lot contient des ressources spécifiées avec l’en-tête Sling-Bundle-Resources, ce qui pose problème dans l’environnement organisé en grappes d’AEM as a Cloud Service. L’avertissement ressemble à ceci :
[WARNING] org.acme:mybundle:0.0.1-SNAPSHOT: Found bundle resources : [/libs/sling/explorer!/resources/explorer]
Pour résoudre les problèmes de conversion des ressources en instructions repoinit, voir la Documentation RepoInit.
api-regions
api-regions-check-order
api-regions-dependencies
api-regions-duplicates
api-regions-crossfeature-dups
Vérifie que les lots OSGI de la clientèle ne comportent pas de déclarations Export-package qui remplacent l’API publique d’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
Pour résoudre ce problème, arrêtez l’exportation d’un package faisant partie de l’API publique d’AEM.
repoinit
bundle-nativecode
configuration-api
Valide les configurations OSGi importantes.
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
Vérifie si une API obsolète est utilisée.
[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
Valide les dépendances comme les lots et les packages de contenu pour éviter les problèmes connus dans les artefacts.
[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
Vérifie l’utilisation des variables d’environnement en fonction du guide de dénomination de variable
[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
Exécute les validateurs filevault. Par défaut, jackrabbit-docviewparser est activé, pour vérifier la syntaxe de contenu bien formée du xml dans les packages qui seront installés pendant le déploiement.
[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
Pour résoudre cette difficulté, vérifiez les problèmes xml dans le fichier nommé par l’analyseur.
aem-provider-type
configurations-basic
Problèmes connus
Vous trouverez, ci-dessous, une liste de problèmes connus dans le cadre de l’utilisation du plug-in Maven Build Analyzer.
Échec de l’exécution du plug-in Maven Build Analyzer dans le SDK local
Lorsque vous utilisez le SDK local avec une version du plug-in Maven Build Analyzer inférieure à 1.1.2
, l’exécution du plug-in peut entraîner l’erreur ci-dessous. Dans ce cas, mettez à jour votre projet vers la dernière version du 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]
Si vous avez utilisé l’archétype de projet AEM pour configurer votre projet, veillez à configurer la propriété dans le fichier pom.xml
Maven racine comme indiqué ci-dessous.
...
<properties>
...
<aemanalyser.version>1.1.2</aemanalyser.version> <!-- Make sure to use the latest release -->
...
</properties>