Complemento Build Analyzer de Maven del SDK de AEM as a Cloud Service maven-analyzer-plugin
El complemento Build Analyzer de Maven del SDK de AEM as a Cloud Service analiza la estructura de los distintos proyectos de paquetes de contenido.
Consulte la documentación del complemento de Maven para obtener información sobre cómo incluirlo en un proyecto de Maven en AEM.
El complemento utiliza el SDK disponible más reciente que el configurado en el proyecto.
A continuación se muestra una tabla que describe los analizadores que se ejecutan como parte de este paso.
api-regions-exportsimports
Comprueba si todos los paquetes OSGI tienen sus declaraciones Import-Package satisfechas con la declaración Export-package de otros paquetes incluidos en el proyecto Maven. Un error tendría este aspecto:
[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.
Para solucionar el problema, consulte si el paquete que proporciona el paquete está incluido en la implementación o, alternativamente, observe el manifiesto del paquete que espera exportar para determinar si se ha utilizado un nombre o una verisón que no son correctos.
bundle-unversioned-packages
Comprueba si los paquetes OSGi especifican una versión con una declaración exportar-empaquetar y un intervalo de versiones con una declaración importar-empaquetar. Un error tendría este aspecto:
[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.
Para solucionar problemas, asegúrese de agregar package-info.java
a ese paquete especificando la versión que desea exportar.
requirements-capabilities
Comprueba si todas las declaraciones de requisitos realizadas en paquetes OSGI se cumplen con las declaraciones de capacidades de otros paquetes incluidos en el proyecto Maven. Un error tendría este aspecto:
[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.
Para solucionar el problema, observe el manifiesto del paquete que esperaría declarar una capacidad para determinar por qué falta, o compruebe el manifiesto del paquete que requiere para ver que el requisito en ahí es correcto.
bundle-content
Envía una advertencia si un paquete contiene contenido inicial especificado con Sling-Initial-Content, lo que resulta problemático en el AEM como entorno agrupado de Cloud Service. La advertencia tiene este aspecto:
[WARNING] org.acme:mybundle:0.0.1-SNAPSHOT: Found initial content : [/]
Para solucionar problemas al convertir el contenido inicial en instrucciones repoinit, consulte la documentación de Repoinit.
bundle-resources
Envía una advertencia si un paquete contiene recursos especificados con el encabezado Sling-Bundle-Resources, lo que resulta problemático en el entorno agrupado de AEM as a Cloud Service. La advertencia tiene este aspecto:
[WARNING] org.acme:mybundle:0.0.1-SNAPSHOT: Found bundle resources : [/libs/sling/explorer!/resources/explorer]
Para solucionar problemas al convertir los recursos a instrucciones Repoinit, consulte Documentación de Repoinit.
api-regions
api-regions-check-order
api-regions-dependencies
api-regions-duplicates
api-regions-crossfeature-dups
Valida que los paquetes OSGI del cliente no tengan declaraciones de paquete de exportación que anulen la API pública de 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
Para solucionarlo, deje de exportar un paquete que forme parte de la API pública de AEM.
repoinit
bundle-nativecode
configuration-api
Valida configuraciones importantes de 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
Comprueba si se utiliza una API obsoleta
[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
Valida dependencias como paquetes y paquetes de contenido para evitar problemas conocidos con artefactos.
[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
Comprueba el uso de eVars env según la guía de nomenclatura de variables
[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
Ejecuta los validadores de filevault. De forma predeterminada, jackrabbit-docviewparser está habilitado, así que comprueba la sintaxis de contenido bien formada del xml en los paquetes que se instalarán durante la implementación.
[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
Como solución, compruebe si hay problemas con xml en el archivo denominado por el analizador.
Problemas conocidos
A continuación, se muestra una lista de problemas conocidos al utilizar el complemento Maven de Build Analyzer.
No se ha podido ejecutar el complemento Maven de Build Analyzer en el SDK local
Cuando se utiliza el SDK local con una versión del complemento Maven de Build Analyzer inferior a 1.1.2
, la ejecución del complemento puede provocar el siguiente error. En este caso, actualice el proyecto a la última versión del complemento.
[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 ha utilizado el tipo de archivo del proyecto de AEM para configurar el proyecto, asegúrese de ajustar la propiedad en el Maven raíz pom.xml
como se muestra a continuación.
...
<properties>
...
<aemanalyser.version>1.1.2</aemanalyser.version> <!-- Make sure to use the latest release -->
...
</properties>