Adobe内容包Maven插件 adobe-content-package-maven-plugin
使用Adobe内容包Maven插件将包部署和管理任务集成到Maven项目中。
将构造的包部署到AEM由Adobe内容包Maven插件执行,并使通常使用AEM 包管理器:执行的任务实现自动化
- 从文件系统中的文件创建新包。
- 在AEM上安装并卸载包。
- 生成已在AEM上定义的包。
- 获取AEM上安装的软件包列表。
- 从AEM中删除包。
本文档详细介绍如何使用Maven管理这些任务。 但是,了解AEM项目及其包的结构也非常重要。
包和AEM项目结构 aem-project-structure
AEM as a Cloud Service遵循由最新的AEM项目原型实施的包管理和项目结构的最新最佳实践。
获取内容包Maven插件 obtaining-the-content-package-maven-plugin
插件可从Maven中央存储库中获取。
内容包Maven插件目标和参数
要使用内容包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设置中找到的第一个有效代理配置。 如果未找到代理配置,则不使用代理。 请参阅公用参数部分中的useProxy
参数。
常用参数 common-parameters
下表中的参数对所有目标都是通用的,但在 目标 列中注明者除外。
failOnError
boolean
false
true
,则会在发生错误时导致生成失败。 值为false
会导致生成忽略该错误。package
之外的所有目标name
String
build
:是,install
:否,rm
:是build
:无默认值,install
: Maven项目的artifactId
属性的值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使用找到的第一个活动代理配置将请求代理到包管理器。package
之外的所有目标userId
String
admin
package
之外的所有目标verbose
boolean
false
package
之外的所有目标生成 build
构建已在AEM实例上定义的内容包。
参数 parameters
生成目标的所有参数在公共参数部分中进行了说明。
安装 install
在存储库中安装包。 执行此目标不需要Maven项目。 目标绑定到Maven构建生命周期的install
阶段。
参数 parameters-1
除了以下参数外,请参阅常用参数部分中的说明。
artifact
String
artifactId
属性的值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
属性的值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
卸载目标的所有参数在公共参数部分中有说明。
帮助 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项目。