Adobe內容套件Maven外掛程式 adobe-content-package-maven-plugin
使用Adobe內容套件Maven外掛程式,將套件部署和管理任務整合到您的Maven專案中。
將已建構的套件部署到AEM是由AdobeContent Package Maven外掛程式執行,並可啟用通常使用AEM執行之工作的自動化 封裝管理員:
- 從檔案系統中的檔案建立新封裝。
- 在AEM上安裝及解除安裝套件。
- 建置已在AEM上定義的套件。
- 取得AEM上安裝的套件清單。
- 從AEM移除套件。
本檔案詳細說明如何使用Maven管理這些任務。 不過,瞭解也很重要 AEM專案及其套件的結構方式。
- 此
content-package-maven-plugin
不再支援從1.0.2版打包。 - 本文會說明 部署 AEM的建構套件由AdobeContent Package Maven外掛程式執行。
套件和AEM專案結構 aem-project-structure
AEMas a Cloud Service會遵循由最新AEM專案原型實作的套件管理和專案結構的最新最佳實務。
取得內容套件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
:的值 artifactId
Maven專案的屬性ls
password
String
admin
package
serverId
String
package
targetURL
String
http://localhost:4502/crx/packmgr/service.jsp
package
timeout
int
5
package
useProxy
boolean
true
true
會讓Maven使用找到的第一個作用中Proxy設定,將請求代理至封裝管理員。package
userId
String
admin
package
verbose
boolean
false
package
版本編號 build
建置已在AEM執行個體上定義的內容套件。
參數 parameters
有關建置目標的所有引數的說明,請參見 通用引數 區段。
安裝 install
在存放庫中安裝套件。 執行此目標不需要Maven專案。 目標已繫結至 install
Maven建置生命週期的階段。
參數 parameters-1
除了下列引數外,請參閱 通用引數 區段。
artifact
String
artifactId
Maven專案的屬性groupId:artifactId:version[:packaging]
artifactId
String
groupId
String
groupId
要安裝的成品install
boolean
true
localRepository
org.apache.maven.artifact.repository.ArtifactRepository
localRepository
系統變數packageFile
java.io.File
packaging
String
zip
pomRemoteRepositories
java.util.List
remoteArtifactRepositories
為Maven專案定義的屬性project
org.apache.maven.project.MavenProject
repositoryId
(POM), repoID
(命令列)String
temp
repositoryUrl
(POM), repoURL
(命令列)String
ls ls
列出部署到的套件 封裝管理員.
參數 parameters-2
ls目標的所有引數都說明於 通用引數 區段。
rm rm
從移除套裝 封裝管理員.
參數 parameters-3
rm目標的所有引數都說明於 通用引數 區段。
解除安裝 uninstall
解除安裝套裝。 套件會留在伺服器上並處於解除安裝狀態。
參數 parameters-4
有關解除安裝目標的所有引數的說明,請參閱 通用引數 區段。
封裝 package
建立內容封裝。 封裝目標的預設組態包含儲存已編譯檔案的目錄內容。 執行套裝程式目標需要編譯建置階段已完成。 套件目標已繫結至Maven建置生命週期的套件階段。
參數 parameters-5
除了下列引數外,請參閱 name
中的引數 通用引數 區段。
archive
org.apache.maven.archiver.MavenArchiveConfiguration
builtContentDirectory
java.io.File
dependencies
java.util.List
embeddedTarget
java.lang.String
embeddeds
java.util.List
failOnMissingEmbed
boolean
false
true
在專案相依性中找不到內嵌成品時,會導致建置失敗。 值 false
會導致建置忽略這類錯誤。filterSource
java.io.File
filters
com.day.jcr.vault.maven.pack.impl.DefaultWorkspaceFilter
filter.xml
檔案。 請參閱 使用篩選器 一節。finalName
java.lang.String
finalName
在Maven專案中定義(建置階段).zip
副檔名group
java.lang.String
groupID
在Maven專案中定義groupId
所產生的內容封裝,此封裝屬於內容封裝的目標安裝路徑的一部分outputDirectory
java.io.File
prefix
java.lang.String
project
org.apache.maven.project.MavenProject
properties
java.util.Map
properties.xml
檔案。 這些屬性無法覆寫下列預先定義的屬性: group
(使用 group
要設定的引數), name
(使用 name
要設定的引數), version
(使用 version
要設定的引數), description
(從專案說明設定), groupId
(groupId
Maven專案描述項的), artifactId
(artifactId
Maven專案描述項的), dependencies
(使用 dependencies
要設定的引數), createdBy
(的值 user.name
系統屬性), created
(目前系統時間)、 requiresRoot
(使用 requiresRoot
要設定的引數), packagePath
(從群組和封裝名稱自動產生)requiresRoot
boolean
requiresRoot
的屬性 properties.xml
檔案。subPackages
java.util.List
version
java.lang.String
workDirectory
java.io.File
使用篩選器 using-filters
使用篩選器元素來定義封裝內容。 這些篩選器已新增至 workspaceFilter
中的元素 META-INF/vault/filter.xml
封裝的檔案。
下列篩選範例顯示要使用的XML結構:
<filter>
<root>/apps/myapp</root>
<mode>merge</mode>
<includes>
<include>/apps/myapp/install/</include>
<include>/apps/myapp/components</include>
</includes>
<excludes>
<exclude>/apps/myapp/config/*</exclude>
</excludes>
</filter>
匯入模式 import-mode
此 mode
元素會定義內容在匯入套件時如何影響存放庫。 可以使用以下值:
- 合併: 套件中尚未在存放庫中的內容會新增。 封裝和存放庫中的內容不會變更。 不會從存放庫移除任何內容。
- 取代: 封裝中不在存放庫中的內容會新增到存放庫中。 存放庫中的內容由封裝中的相符內容取代。 當內容不存在於封裝中時,就會從存放庫移除內容。
- 更新: 封裝中不在存放庫中的內容會新增到存放庫中。 存放庫中的內容由封裝中的相符內容取代。
當篩選器包含否 mode
元素,的預設值 replace
已使用。
說明 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專案。