AEM as a Cloud Service SDK 构建分析器 Maven 插件

AEM as a Cloud Service SDK 构建分析器 Maven 插件分析各种内容包项目的结构。

有关如何将其包括在 AEM maven 项目中的信息,请参阅 Maven 插件文档

注意

建议您更新 Maven 项目,以在以下位置引用 Maven 中央存储库中该插件的最新版本:https://repo1.maven.org/maven2/com/adobe/aem/aemanalyser-maven-plugin/

该插件使用最新可用的 SDK 而不是在项目中配置的 SDK。

下表描述了在此步骤中执行的分析器。

模块 函数、示例和疑难解答 本地 SDK Cloud Manager
api-regions-exportsimports 检查所有 OSGI 捆绑的 Import-Package 声明,是否由 Maven 项目中包含的其他捆绑的 Export-package 声明满足。错误可能类似下面这样:

 

[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.

 

要排除问题,请查看提供包的捆绑是否包括在部署中,或者查看您预期导出的捆绑的清单,以确定使用的名称或版本是否有错。
requirements-capabilities 检查 OSGI 捆绑提出的所有要求声明,是否由 Maven 项目中包含的其他捆绑的功能声明满足。错误可能类似下面这样:

 

[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.

 

要排除问题,请查看您预期会声明功能的捆绑的清单,以确定捆绑为什么缺失,或者检查所需捆绑的清单,以查看其中的要求是否正确。
bundle-content 如果某个捆绑包含使用 Sling-Initial-Content 指定的初始内容,而这些内容在 AEM as a Cloud Service 集群环境中有问题,则会提出警告。警告可能类似下面这样:

 

[WARNING] org.acme:mybundle:0.0.1-SNAPSHOT: Found initial content : [/]

 

要排除问题,请参阅 Repoinit 文档,将初始内容转化为 repoinit 语句。
bundle-resources 如果某个捆绑包含使用 Sling-Bundle-Resources 标头指定的资源,而这些资源在 AEM as a Cloud Service 集群环境中有问题,则会提出警告。警告可能类似下面这样:

 

[WARNING] org.acme:mybundle:0.0.1-SNAPSHOT: Found bundle resources : [/libs/sling/explorer!/resources/explorer]

 

要排除问题,请参阅 Repoinit 文档将资源转化为 repoinit 语句。
api-regions

 

api-regions-check-order

 

api-regions-dependencies

 

api-regions-duplicates
这些分析器检查与内容包向功能模型转换流程相关的一些详细信息,这些流程会创建遵守 Sling 功能模型的构件。任何错误都应报告给 Adobe 客户支持。
api-regions-crossfeature-dups 验证客户的 OSGI 捆绑没有会覆盖 AEM as a Cloud Service 的公共 API 的 Export-package 声明

 

[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

 

要修复,请停止导出属于 AEM 公共 API 的包。
repoinit 检查所有 repoinit 部分的语法
bundle-nativecode 确保 OSGI 捆绑没有安装原生代码。
configuration-api 验证重要 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 检查是否使用了已弃用的 api

 

[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 验证包和内容包等依赖项以防止构件中出现已知问题。

 

[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)

已知问题

以下是使用构建分析器 Maven 插件时出现的已知问题的列表。

无法在本地 SDK 中执行构建分析器 Maven 插件

在将本地 SDK 与低于 1.1.2 的构建分析器 Maven 插件结合使用时,运行该插件可能会导致以下错误。在此情况下,请将您的项目更新到该插件的最新版本。

[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]

如果您已使用 AEM 项目原型设置项目,请确保调整根 Maven pom.xml 中的属性,如下所示。

   ...
   <properties>
      ...
      <aemanalyser.version>1.1.2</aemanalyser.version> <!-- Make sure to use the latest release -->
      ...
   </properties>

在此页面上