Adobe內容套件Maven外掛程式 adobe-content-package-maven-plugin

使用Adobe內容套件Maven外掛程式,將套件部署和管理任務整合到您的Maven專案中。

將建構的封裝部署到AEM是由AdobeContent Package Maven外掛程式執行,並且允許自動化通常使用AEM 封裝管理員:執行的工作

  • 從檔案系統中的檔案建立新封裝。
  • 在AEM上安裝及解除安裝套件。
  • 建置已在AEM上定義的套件。
  • 取得AEM上安裝的套件清單。
  • 從AEM移除套件。

本檔案詳細說明如何使用Maven管理這些任務。 不過,瞭解AEM專案及其封裝的結構方式也很重要。

NOTE
請一律使用這些外掛程式的最新可用版本。
NOTE
套件​ 建立 ​現在由Apache Jackrabbit FileVault Package Maven外掛程式擁有。
本文說明由Adobe內容套件Maven外掛程式執行的將已建構套件部署至AEM的​ 部署

套件和AEM專案結構 aem-project-structure

AEM as a Cloud Service遵循由最新AEM專案原型實作的套件管理和專案結構的最新最佳實務。

TIP
請參閱AEM as a Cloud Service檔案中的AEM專案結構文章和AEM專案原型檔案。 AEM 6.5完全支援這兩項功能。

取得內容套件Maven外掛程式 obtaining-the-content-package-maven-plugin

外掛程式可從Maven中央存放庫取得。

內容套件Maven外掛程式目標與引數

若要使用Content Package Maven外掛程式,請在POM檔案的組建元素中新增下列外掛程式元素:

<plugin>
 <groupId>com.day.jcr.vault</groupId>
 <artifactId>content-package-maven-plugin</artifactId>
 <version>1.0.4</version>
 <configuration>
       <!-- parameters and values common to all goals, as required -->
 </configuration>
</plugin>

若要讓Maven下載外掛程式,請使用此頁面上取得內容套件Maven外掛程式區段中提供的設定檔。

內容套件Maven外掛程式的目標 goals-of-the-content-package-maven-plugin

後續章節將說明「內容套件」外掛程式提供的目標與目標引數。 「一般引數」一節中說明的引數可用於大部分的目標。 套用至一個目標的引數會在該目標的區段進行說明。

外掛程式前置詞 plugin-prefix

外掛程式首碼為content-package。 使用此首碼從命令列執行目標,如下列範例所示:

mvn content-package:build

引數前置詞 parameter-prefix

除非另有說明,否則外掛程式目標和引數會使用vault前置詞,如下列範例所示:

mvn content-package:install -Dvault.targetURL="https://192.168.1.100:4502/crx/packmgr/service.jsp"

代理 proxies

使用AEM代理的目標會使用Maven設定中找到的第一個有效Proxy設定。 如果未找到Proxy設定,則不會使用Proxy。 檢視通用引數區段中的useProxy引數。

通用引數 common-parameters

下表中的引數對所有目標都是通用的,除非在​ 目標 ​欄中註明。

名稱
類型
必要
預設值
說明
目標
failOnError
boolean
false
發生錯誤時,true的值會導致組建失敗。 值為false會導致組建忽略錯誤。
package以外的所有目標
name
String
build:是,install:否,rm:是
build:無預設值,install: Maven專案的artifactId屬性值
要對其採取動作的套件的名稱
ls以外的所有目標
password
String
admin
用於使用AEM進行驗證的密碼
package以外的所有目標
serverId
String
要從中擷取使用者名稱和密碼以進行驗證的伺服器ID
package以外的所有目標
targetURL
String
http://localhost:4502/crx/packmgr/service.jsp
AEM封裝管理員的HTTP服務API的URL
package以外的所有目標
timeout
int
5
與封裝管理程式服務通訊的連線逾時(以秒為單位)
package以外的所有目標
useProxy
boolean
true
值為true會讓Maven使用找到的第一個作用中Proxy設定,將請求代理至封裝管理員。
package以外的所有目標
userId
String
admin
要向AEM驗證的使用者名稱
package以外的所有目標
verbose
boolean
false
啟用或停用詳細記錄
package以外的所有目標

版本編號 build

建置已在AEM執行個體上定義的內容套件。

NOTE
此目標不需要在Maven專案中執行。

參數 parameters

組建目標的所有引數都在一般引數區段中說明。

安裝 install

在存放庫中安裝套件。 執行此目標不需要Maven專案。 目標已繫結至Maven組建生命週期的install階段。

參數 parameters-1

除了下列引數之外,請參閱一般引數區段中的說明。

名稱
類型
必要
預設值
說明
artifact
String
Maven專案的artifactId屬性值
字串格式為groupId:artifactId:version[:packaging]
artifactId
String
要安裝的成品的ID
groupId
String
要安裝的成品groupId
install
boolean
true
決定是否在上傳封裝時自動將其解壓縮
localRepository
org.apache.maven.artifact.repository.ArtifactRepository
localRepository系統變數的值
無法使用外掛程式設定來設定本機Maven存放庫,因為一律使用系統屬性
packageFile
java.io.File
為Maven專案定義的主要成品
要安裝的封裝檔案名稱
packaging
String
zip
要安裝的成品封裝型別
pomRemoteRepositories
java.util.List
為Maven專案定義的remoteArtifactRepositories屬性值
此值無法使用外掛程式設定進行設定,必須在專案中指定。
project
org.apache.maven.project.MavenProject
已設定外掛程式的專案
隱含的Maven專案,因為專案包含外掛程式設定
repositoryId (POM), repoID (命令列)
String
temp
從中擷取成品的存放庫識別碼
repositoryUrl (POM), repoURL (命令列)
String
從中擷取成品的存放庫URL
版本
字串
要安裝的成品版本

ls ls

列出部署至封裝管理員的封裝。

參數 parameters-2

一般引數區段中說明ls目標的所有引數。

rm rm

封裝管理員移除封裝。

參數 parameters-3

一般引數區段中說明rm目標的所有引數。

解除安裝 uninstall

解除安裝套裝。 套件會留在伺服器上並處於解除安裝狀態。

參數 parameters-4

解除安裝目標的所有引數在一般引數區段中都有說明。

說明 help

參數 parameters-6

名稱
類型
必要
預設值
說明
detail
boolean
false
決定是否顯示每個目標的所有可設定屬性
goal
String
此引數會定義要顯示其說明的目標名稱。 如果未指定任何值,則會顯示所有目標的說明。
indentSize
int
2
用於每個層級縮排的空格數(如果已定義,則必須為正數)
lineLength
int
80
顯示線的最大長度(如果已定義,則必須為正數)

在套件中包含縮圖影像或屬性檔案 including-a-thumbnail-image-or-properties-file-in-the-package

取代預設的封裝組態檔以自訂封裝屬性。 例如,在封裝管理員中加入縮圖影像以區分封裝。

來源檔案可以位於檔案系統中的任何位置。 在POM檔案中,定義建置資源以將來源檔案複製到target/vault-work/META-INF以包含在封裝中。

下列POM程式碼會將專案來源之META-INF資料夾中的檔案新增至封裝:

<build>
    <resources>
        <!-- vault META-INF resources (thumbnail and so on) -->
        <resource>
            <directory>${basedir}/src/main/content/META-INF</directory>
            <targetPath>../vault-work/META-INF</targetPath>
        </resource>
    </resources>
</build>

下列POM程式碼僅會將縮圖影像新增至封裝。 縮圖影像必須命名為thumbnail.png,且必須位於封裝的META-INF/vault/definition資料夾中。 在此範例中,來源檔案位於專案的/src/main/content/META-INF/vault/definition資料夾:

<build>
    <resources>
        <!-- thumbnail only -->
        <resource>
            <directory>${basedir}/src/main/content/META-INF/vault/definition</directory>
            <targetPath>../vault-work/META-INF/vault/definition</targetPath>
        </resource>
    </resources>
</build>

使用AEM專案原型來產生AEM專案 using-archetypes

最新的AEM專案原型會為內部部署和AMS實作實施最佳實務套件結構,並建議用於所有AEM專案。

TIP
請參閱AEM as a Cloud Service檔案中的AEM專案結構文章和AEM專案原型檔案。 AEM 6.5完全支援這兩項功能。
recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab