as a Cloud ServiceAEM的SDK生成分析器Maven插件分析各種內容包項目的結構。
查看 Maven插件文檔 有關如何將其包含在maven項目中AEM的資訊。
建議您更新Maven項目,以參考在Maven中央儲存庫中找到的插件的最新版本,該位置為:https://repo1.maven.org/maven2/com/adobe/aem/aemanalyser-maven-plugin/
插件使用最新的可用SDK,而不是項目中配置的SDK。
下表描述了作為此步驟一部分執行的分析器。
模組 | 函式、示例和故障排除 | 本地SDK | Cloud Manager |
---|---|---|---|
api-regions-exportsimports |
檢查所有OSGI捆綁包是否都有其「導入包」聲明符合Maven項目中其它包含捆綁包的「導出包」聲明。 錯誤將如下所示:
[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指定的初始內容,則發出警告,這在as a Cloud Service群集環境AEM中是有問題的。 警告如下:
[WARNING] org.acme:mybundle:0.0.1-SNAPSHOT: Found initial content : [/] 要排除將初始內容轉換為重定點語句的故障,請參閱重定點文檔。 |
是 | 是 |
bundle-resources |
如果捆綁包包含使用Sling-Bundle-Resources標頭指定的資源,則會發出警告,這在as a Cloud Service群集環境AEM中是有問題的。 警告如下:
[WARNING] org.acme:mybundle:0.0.1-SNAPSHOT: Found bundle resources : [/libs/sling/explorer!/resources/explorer] 要排除將資源轉換為重點語句的故障,請參見 重定位文檔。 |
是 | 是 |
api-regions
api-regions-check-order
api-regions-dependencies
api-regions-duplicates |
這些分析器檢查與 內容包到特徵模型轉換過程 建立符合「吊具特徵模型」的工件。 應將任何錯誤報告給Adobe客戶支援。 | 是 | 是 |
api-regions-crossfeature-dups |
驗證客戶OSGI捆綁包沒有覆蓋as a Cloud Service的公AEM用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 要修復,請停止導出屬於公共API的AEM包。 |
是 | 是 |
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) |
是 | 是 |
content-package-validation |
執行檔案驗證器。 預設情況下,啟用jackrabbit-docviewparser,它檢查在部署期間將安裝的包內xml的格式良好的內容語法。
[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 要修復,請檢查分析器命名的檔案以瞭解xml問題。 |
是 | 是 |
下面是使用生成分析器Maven插件時已知問題的清單。
當將本地SDK與低於版本的Build AnalyzerMaven插件一起使用時 1.1.2
,運行插件可能導致以下錯誤。 在這種情況下,請將項目更新為插件的最新版本。
[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>