Show Menu
主題×

使用Maven管理包

使用Content Package Maven增效模組,將套件管理工作整合至您的Maven專案。 外掛程式目標和參數可讓您自動執行許多通常使用「套件管理員」頁面或FileVault命令列執行的工作:
  • 從檔案系統中的檔案建立新包。
  • 在CRX或CQ伺服器上安裝和解除安裝套件。
  • 生成已在伺服器上定義的包。
  • 獲取伺服器上安裝的軟體包清單。
  • 從伺服器中刪除包。

將內容包Maven插件添加到POM檔案

要使用Content Package Maven Plugin,請在POM檔案的構建元素中添加以下插件元素:
<plugin>
 <groupId>com.day.jcr.vault</groupId>
 <artifactId>content-package-maven-plugin</artifactId>
 <version>0.0.24</version>
 <configuration>
       <!-- parameters and values common to all goals, as required --> 
 </configuration>
</plugin>

若要啟用Maven下載外掛程式,請使用本頁「取得內容套件Maven外掛程式 」區段中提供的描述檔

Content Package Maven Plugin的目標

「內容套件」外掛程式提供的目標和目標參數在後面的章節中有說明。 「常用參數」(Common Parameters)部分中描述的參數可用於大多數目標。 適用於一個目標的參數在該目標的一節中有說明。
外掛程式首碼
外掛程式首碼是content-package。 使用此前置詞從命令行執行目標,如下例所示:
mvn content-package:build 

參數首碼
除非另有說明,外掛程式目標和參數會使用Vault首碼,如下列範例所示:
mvn content-package:install -Dvault.targetURL="https://192.168.1.100:4502/crx/packmgr/service.jsp"

Proxy
使用CRX或CQ伺服器之Proxy的目標會使用Maven設定中找到的第一個有效Proxy設定。 如果未找到代理配置,則不使用代理。 請參閱「常用設定」區段中的useProxy參數。

通用參數

下表中的參數是所有目標的通用參數,除非在「目標」列中注明。
名稱 類型 必要 預設值 說明 目標
failOnError 布林值 false 值的值會 true 在發生錯誤時導致構建失敗。 值使生 false 成忽略錯誤。 除包外的所有目標。
名稱 字串 構建:是安裝 :無 rm:是 構建:沒有預設值。 安裝:Maven項目的artifactId屬性的值。 要操作的包的名稱。 除ls以外的所有目標。
密碼 字串 管理員 用於CRX伺服器驗證的口令。 除包外的所有目標。
serverId 字串 要從中檢索用戶名和口令以進行驗證的伺服器ID。 除包外的所有目標。
targetURL 字串 http://localhost:4502/ crx/packmgr/ service.jsp CRX套件管理員的HTTP服務API URL。 除包外的所有目標。
超時 int 5 與包管理器服務通信的連接超時(以秒為單位)。 除包外的所有目標。
useProxy 布林值 true 確定是否從Maven設定檔案使用代理配置。 值使用 true 找到的第一個活動代理配置來代理對包管理器的請求。 值false會導致不使用任何代理。 除包外的所有目標。
userId 字串 管理員 要向CRX伺服器驗證的用戶名。 除包外的所有目標。
verbose 布林值 false 啟用或禁用詳細記錄。 值啟用詳 true 細記錄。 除包外的所有目標。

build

建立已在AEM例項上定義的內容套件。
此目標不需要在Maven專案中執行。

參數

構建目標的所有參數都在「常用參數」 部分中說明

例如

下列範例會建置AEM例項上安裝的workflow-mbean套件,其IP位址為10.36.79.223。目標使用以下命令執行:
mvn content-package:build

以下POM檔案位於命令行工具的當前目錄中。 POM指定包名和包服務的URL。
<project xmlns="https://maven.apache.org/POM/4.0.0" 
  xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.adobe.example</groupId>
  <artifactId>example-package</artifactId>
  <version>0.0.1-SNAPSHOT</version>
    <build>
        <plugins>
     <plugin>
  <groupId>com.day.jcr.vault</groupId>
  <artifactId>content-package-maven-plugin</artifactId>
  <version>0.0.24</version>
  <configuration>
   <name>workflow-mbean</name>
   <failOnError>true</failOnError>
   <targetURL>https://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
  </configuration>
     </plugin>
 </plugins>
    </build>
</project>

install

在儲存庫中安裝軟體包。 執行此目標不需要Maven項目。 其目標將綁定到Maven構建生命週期的「安裝」階段。

參數

除了下列參數外,請參閱「公用參數」( Common Parameters)部分中的說 明。
名稱 類型 必要 預設值 說明
藏物 字串 Maven項目的artifactId屬性的值。 格式groupId:artifactId:version[:packaging]的字串。
artifactId 字串 要安裝的對象的ID
groupId 字串 要安裝的對象的groupId
安裝 布林值 true 確定是否在上載包時自動解壓縮包。 值true會解除封裝套件,而false則不會解除封裝套件的包裝。
localRepository org.apache.maven。 藏物。 儲存庫。 ArtifactRepository localRepository系統變數的值。 本地Maven儲存庫。 您無法使用外掛程式設定來設定此參數。 系統屬性一律使用。
packageFile java.io.File 為Maven項目定義的主對象。 要安裝的軟體包檔案的名稱。
包裝 字串 ZIP 要安裝的對象的封裝類型
pomRemoteRepositories java.util.list 為Maven項目定義的remoteAtifactRepositories屬性的值。 此值無法使用外掛程式設定來設定。 必須在專案中指定值。
project org.apache.maven。 project.MavenProject 為其配置插件的項目。 馬文的專案。 專案是隱式的,因為專案包含外掛程式設定。
repositoryId (POM) repoID (命令行) 字串 溫度 從中檢索對象的儲存庫的ID。 在POM中,使用repositoryID。 在命令行中,使用repoID。
repositoryUrl (POM) repoURL (命令行) 字串 從中檢索對象的儲存庫的URL。 在POM中,使用repositoryURL。 在命令行中,使用repoURL。
版本 字串 要安裝的對象版本。

例如

以下範例會建立包含workflow-mbean OSGi套件的套件(請參閱 build goal的範例),然後安裝此套件。 由於安裝目標綁定到軟體包安裝階段,因此以下命令將執行安裝目標:
mvn install

<project xmlns="https://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 
    https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.adobe.example.myapp</groupId>
  <artifactId>workflow-mbean</artifactId>
  <version>0.0.3-SNAPSHOT</version>

  <build>
    <plugins>
      <plugin>
        <groupId>com.day.jcr.vault</groupId>
        <artifactId>content-package-maven-plugin</artifactId>
        <version>0.0.24</version>
        <configuration>
          <builtContentDirectory>jcr_root</builtContentDirectory>
          <targetURL>https://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>package</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

ls

列出部署到包管理器的包。

參數

ls目標的所有參數都在「公用參數」( Common Parameters)部分中

例如

下列範例列出AEM例項中安裝的套件,其IP位址為10.36.79.223。目標使用以下命令執行:
mvn content-package:ls

以下POM檔案位於命令行工具的當前目錄中。 POM指定包服務的URL。
<project xmlns="https://maven.apache.org/POM/4.0.0" 
  xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.adobe.example</groupId>
  <artifactId>example-package</artifactId>
  <version>0.0.1-SNAPSHOT</version>
    <build>
        <plugins>
     <plugin>
  <groupId>com.day.jcr.vault</groupId>
  <artifactId>content-package-maven-plugin</artifactId>
  <version>0.0.24</version>
  <configuration>
      <targetURL>https://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
  </configuration>
      </plugin>
   </plugins>
     </build>
</project>

rm

從包管理器中刪除包。

參數

rm目標的所有參數都在「公用參數」( Common Parameters)部分中

例如

下列範例會移除AEM例項上安裝的IP位址為10.36.79.223的workfow-mbean套件。目標使用以下命令執行:
mvn content-package:rm

以下POM檔案位於命令行工具的當前目錄中。 POM指定包服務的URL和包的名稱。
<project xmlns="https://maven.apache.org/POM/4.0.0" 
  xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.adobe.example</groupId>
  <artifactId>example-package</artifactId>
  <version>0.0.1-SNAPSHOT</version>
    <build>
        <plugins>
     <plugin>
  <groupId>com.day.jcr.vault</groupId>
  <artifactId>content-package-maven-plugin</artifactId>
  <version>0.0.24</version>
  <configuration>
                    <name>workflow-mbean</name>
      <targetURL>https://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
  </configuration>
      </plugin>
   </plugins>
     </build>
</project>

uninstall

卸載軟體包。 該軟體包仍處於卸載狀態。

參數

卸載目標的所有參數都在「常用參數」( Common Parameters)部分中

例如

下列範例會解除安裝IP位址為10.36.79.223之AEM例項上所安裝的workflow-mbean套件。目標使用以下命令執行:
mvn content-package:uninstall

以下POM檔案位於命令行工具的當前目錄中。 POM指定包名和包服務的URL。
<project xmlns="https://maven.apache.org/POM/4.0.0" 
  xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.adobe.example</groupId>
  <artifactId>workflow-mbean</artifactId>
  <version>0.0.3-SNAPSHOT</version>
    <build>
        <plugins>
     <plugin>
  <groupId>com.day.jcr.vault</groupId>
  <artifactId>content-package-maven-plugin</artifactId>
  <version>0.0.24</version>
  <configuration>
   <name>workflow-mbean</name>
   <failOnError>true</failOnError>
   <targetURL>https://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
  </configuration>
     </plugin>
 </plugins>
    </build>
</project>

package

建立內容套件。 軟體包目標的預設配置包括保存已編譯檔案的目錄的內容。 執行軟體包目標需要編譯構建階段完成。 軟體包目標綁定到Maven構建生命週期的軟體包階段。

參數

除了下列參數外,請參閱「公用參數」( name Common Parameters)部分中 的參數說明
名稱 類型 必要 預設值 說明
封存 org.apache.maven。 archiver。 MavenArchiveConfiguration 要使用的存檔配置。 請參 閱Maven Archiver的檔案
builtContentDirectory java.io.File Maven組建版本的輸出目錄的值。 包含要包含在包中的內容的目錄。
依賴性 java.util.list
embeddedTarget java.lang.String
嵌入式 java.util.list
failOnMissingEmbed 布林值 false 如果值為true,則當在項目相關性中找不到嵌入對象時,生成會失敗。 值offalse會導致組建忽略錯誤。
filterSource java.io.File 指定工作區篩選器源的檔案。 在配置中指定並通過嵌入式或子包插入的過濾器與檔案內容合併。
篩選器 com.day.jcr。 vault.maven.pack.impl DefaultWorkspaceFilter 包含定義套件內容的篩選元素。 執行時,篩選器會包含在filter.xml檔案中。 請參閱下方的「使用篩選」區段。
finalName java.lang.String maven項目(構建階段)中定義的finalName。 生成的包ZIP檔案的名稱,不帶。zip檔案副檔名。
群組 java.lang.String Maven專案中定義的groupID。 產生的內容套件的groupId。 此值是內容套件的目標安裝路徑的一部分。
outputDirectory java.io.File 在Maven項目中定義的構建目錄。 保存內容包的本地目錄。
前置詞 java.lang.String
project org.apache.maven。 project.MavenProject 馬文的專案。
屬性 java.util.Map 您可在properties.xml檔案中設定的其他屬性。 這些屬性無法覆寫下列預先定義的屬性:
  • 群組:使用群組參數來設定
  • 名稱:使用name參數來設定
  • 版本:使用版本參數來設定
  • 說明:從專案說明設定
  • groupId:maven項目描述符的groupId
  • artifactId:maven項目描述符的artifactId
  • 相關性:使用相依性參數來設定
  • createdBy:user.name系統屬性的值
  • 已建立:當前系統時間
  • requiresRoot:使用requiresRoot參數來設定
  • packagePath:自動從組和包名稱生成
requiresRoot 布林值 false 定義軟體包是否需要root。 這會成為properties.xml檔案的<code>requiresRoot</code>屬性。
subPackages java.util.list
版本 java.lang.String Maven專案中定義的版本 內容套件的版本。
workDirectory java.io.File 在Maven項目(構建階段)中定義的目錄。 包含要包含在包中的內容的目錄。

使用濾鏡

使用篩選元素來定義套件內容。 篩選器會新增至套件檔案中的 META-INF/vault/filter.xml workspaceFilter元素。
以下篩選器示例顯示要使用的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>

匯入模式
mode 素定義導入包時對儲存庫的影響。 可使用下列值:
  • ​合併:將添加包中尚未在儲存庫中的內容。 包和儲存庫中的內容保持不變。 系統不會從儲存庫中刪除任何內容。
  • ​取代:不在儲存庫中的包中的內容將添加到儲存庫中。 儲存庫中的內容將替換為包中的匹配內容。 當內容不存在於包中時,內容將從儲存庫中刪除。
  • ​更新:不在儲存庫中的包中的內容將添加到儲存庫中。 儲存庫中的內容將替換為包中的匹配內容。 現有內容從儲存庫中刪除。
當篩選器不含元 mode 素時,會使用預 replace 設值。

例如

下面的示例建立包含workflow-mbean OSGi包的包。 POM檔案將jcr_root目錄標識為builtContentDirectory屬性的值。 jcr_root目錄包含映射儲存庫的目錄結構中的包JAR檔案:
jcr_root/apps/myapp/install/workflow-mbean-0.03-SNAPSHOT.jar
由於目標綁定到包構建階段,因此以下命令將執行包目標:
mvn package
<project xmlns="https://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 
    https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.adobe.example.myapp</groupId>
  <artifactId>workflow-mbean</artifactId>
  <version>0.0.3-SNAPSHOT</version>

  <build>
    <plugins>
      <plugin>
        <groupId>com.day.jcr.vault</groupId>
        <artifactId>content-package-maven-plugin</artifactId>
        <version>0.0.24</version>
        <configuration>
          <builtContentDirectory>jcr_root</builtContentDirectory>
          <targetURL>https://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>package</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

您不必在外掛 package 程式區段中表 executions 達目標,而 content-package 是可以用作專案元素的 packaging 值:
<project xmlns="https://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 
    https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.adobe.example.myapp</groupId>
  <artifactId>workflow-mbean</artifactId>
  <version>0.0.3-SNAPSHOT</version>
  <packaging>content-package</packaging>
  <build>
    <plugins>
      <plugin>
        <groupId>com.day.jcr.vault</groupId>
        <artifactId>content-package-maven-plugin</artifactId>
        <version>0.0.24</version>
        <configuration>
          <builtContentDirectory>jcr_root</builtContentDirectory>
          <targetURL>https://10.36.79.223:4502/crx/packmgr/service.jsp</targetURL>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

說明

參數

名稱
類型
必要
預設值
說明
detail
布林值
false
確定是否顯示每個目標的所有可設定屬性。 值true會顯示所有可設定的屬性。
目標
字串
要顯示幫助的目標名稱。 如果未指定任何值,則會顯示所有目標的說明。
indentSize
int
2
用於每個級別縮排的空格數。 如果您指定值,該值應為正數。
lineLength
int
80
顯示線的最大長度。 如果您指定值,該值應為正數。

取得Content Package Maven Plugin

外掛程式可從公用Adobe儲存庫取得。 若要下載外掛程式,請將下列Maven描述檔新增至您的Maven設定檔,然後加以啟動。 當您使用Maven命令時,外掛程式會視需要下載到您的本機儲存庫。
Adobe Public Releases儲存庫不可瀏覽,因此使用Web瀏覽器瀏覽到儲存庫URL會導致「找不到」錯誤。 但是, Maven可以訪問儲存庫目錄。
<profile>
    <id>adobe-public</id>
    <activation>
         <activeByDefault>false</activeByDefault>
    </activation>
    <properties>
         <releaseRepository-Id>adobe-public-releases</releaseRepository-Id>
         <releaseRepository-Name>Adobe Public Releases</releaseRepository-Name>
         <releaseRepository-URL>https://repo.adobe.com/nexus/content/groups/public</releaseRepository-URL>
    </properties>
    <repositories>
         <repository>
             <id>adobe-public-releases</id>
             <name>Adobe Basel Public Repository</name>
             <url>https://repo.adobe.com/nexus/content/groups/public</url>
             <releases>
                 <enabled>true</enabled>
                 <updatePolicy>never</updatePolicy>
             </releases>
             <snapshots>
                 <enabled>false</enabled>
             </snapshots>
         </repository>
     </repositories>
     <pluginRepositories>
         <pluginRepository>
             <id>adobe-public-releases</id>
             <name>Adobe Basel Public Repository</name>
             <url>https://repo.adobe.com/nexus/content/groups/public</url>
             <releases>
                 <enabled>true</enabled>
                 <updatePolicy>never</updatePolicy>
             </releases>
             <snapshots>
                 <enabled>false</enabled>
             </snapshots>
         </pluginRepository>
     </pluginRepositories>
</profile>

將OSGi Bundles內嵌在內容套件中

使用Content Package Maven Plugin將OSGi bundles內嵌至內容套件。 若要嵌入套件,請實作下列組態:
  • 必須將包聲明為Maven項目的從屬關係。
  • 外掛程式設定會使用套件中所需的套件路徑來參照套件。
下列範例POM會建立包含Apache Sling JCR UserManager套件的套件。 在包中,包JAR位於以下文 jcr_root/apps/myapp/install 件夾:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="https://maven.apache.org/POM/4.0.0" 
             xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="https://maven.apache.org/POM/4.0.0
             https://maven.apache.org/maven-v4_0_0.xsd">
 <modelVersion>4.0.0</modelVersion>
   <groupId>com.adobe.example.myapp</groupId>
 <artifactId>embedded-example</artifactId>
 <packaging>content-package</packaging>
 <version>1.0.0-SNAPSHOT</version>

   <build>
 <plugins>
     <plugin>
        <groupId>com.day.jcr.vault</groupId>
      <artifactId>content-package-maven-plugin</artifactId>
      <version>0.0.24</version>
      <extensions>true</extensions>
      <configuration>
   <filters>
       <filter>
    <root>/apps/myapp</root>
       </filter>
    </filters>
    <embeddeds>
       <embedded>
    <groupId>org.apache.sling</groupId>
    <artifactId>org.apache.sling.jcr.jackrabbit.usermanager</artifactId>
    <target>/apps/myproject/install</target>
        </embedded>
    </embeddeds>
       </configuration>
  </plugin> 
    </plugins>
    </build>
    <dependencies>
 <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.jcr.jackrabbit.usermanager</artifactId>
      <version>2.2.0</version>
 </dependency>
    </dependencies> 
</project>

在包中包括縮圖影像或屬性檔案

替換預設包配置檔案以自定義包屬性。 例如,在「套件管理員」和「套件共用」中加入縮圖影像以區分套件。
在包中,FileVault特定檔案位於/META-INF/vault資料夾中。 源檔案可以位於檔案系統中的任意位置。 在POM檔案中,定義構建資源,將源檔案複製到目標/vault-work/META-INF,以便包含在包中。
以下POM代碼將項目源的META-INF資料夾中的檔案添加到包中:
<build>
    <resources>
        <!-- vault META-INF resources (thumbnail etc.) -->
        <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專案

有數種Maven原型可供產生AEM專案。 使用符合您發展目標的原型:
Apache Sling專案也提供適用於AEM開發的原型。 這些檔案記錄在 https://sling.apache.org/site/maven-archetypes.html
每個原型都生成以下項目:
  • 項目資料夾結構。
  • POM檔案。
  • FileVault配置檔案。
Adobe公用Maven儲存庫提供原型文物。 要下載並執行原型,請使用Maven原型:generate命令的參數來標識原型和Adobe儲存庫:
mvn archetype:generate -DarchetypeGroupId=com.day.jcr.vault \
-DarchetypeArtifactId={id_of_archetype} -DarchetypeVersion=1.0.2 \
-DarchetypeRepository=adobe-public-releases

Maven原型外掛程式在shell或命令提示中使用互動模式來收集您專案的相關資訊。 您提供的資訊可用來設定各種專案屬性,例如檔案夾名稱和物件ID。
POM檔案
產生的POM檔案包含指令,可用來編譯程式碼、建立組合,以及將它們部署在封裝中的AEM。 Maven專 groupID 案的 artifactId version 和屬性會使用您提供給Maven互動式提示的值自動 name``archetype:generate 填入。
您可能希望在生成的pom.xml檔案中更改以下預設值:
  • CQ伺服器名稱或IP位址:預設值為 localhost 。 下方 crx.host 的元 project/properties 素包含此值。
  • CQ伺服器的埠號:預設值為 4502 。 下方 crx.port 的元 project/properties 素包含此值。
  • Content Package Maven Plugin的版本:使用最新版本作為外掛程式 version 的元素內容, artifactId 包含 content-package-maven-plugin 。 預設值為 0.0.24
使用原型
  1. 在shell窗口或命令提示符下,輸入Maven命 archetype:generate 令。 出現提示時,請提供其餘參數的值。
    有關每個參數的資訊,請參閱您所用原型的章節。
  2. 使用文本編輯器開啟pom.xml檔案,並根據您的要求編輯預設值。
  3. 將資源填入產生的檔案夾。
  4. 輸入命 mvn clean install 令。

簡單內容包——原型

建立適合為簡單AEM應用程式安裝資源的大型專案。 檔案夾結構是使用在AEM存放庫 /apps 檔案夾下方的檔案夾結構。 POM定義了用於封裝您放置在資料夾中的資源以及在AEM實例上安裝包的命令。
原型藏物屬性:
  • 群組ID: com.day.jcr.vault
  • 對象ID: simple-content-package-archetype
  • 版本: 1.0.2
  • 存放庫: adobe-public-releases
Maven命令:
mvn archetype:generate -DarchetypeGroupId=com.day.jcr.vault \
-DarchetypeArtifactId=simple-content-package-archetype \
-DarchetypeVersion=1.0.2 \
-DarchetypeRepository=adobe-public-releases

原型參數:
  • groupId:Maven所產生的內容套件的groupId。 該值將自動用於POM檔案。
  • artifactId:內容套件的名稱。 該值也用作項目資料夾的名稱。
  • 版本:內容套件的版本。
  • 套件:此值不用於simple-content-package-archetype。
  • appsFolderName:/apps下方的資料夾名稱。
  • artifactName:內容套件的說明。
  • packageGroup:內容套件群組的名稱。 此值會為Content Package Maven Plugin的Package目標設定群組參數。
資料夾結構:
${artifactId}
   |- pom.xml
   |- README.txt
   |- src
      |- main
         |- content
             |- jcr_root
                 |- apps
                     |- ${appsFolderName}
                            |- components 
                               |- .content.xml
                            |- config
                            |- install
             |- META-INF
                 |- vault
                     |- config.xml
                     |- filter.xml
                     |- nodetypes.cnd
                     |- properties.xml
                     |- definition
                        |- .content.xml

簡單內容——包含嵌入——原型

執行與simple-content-package-archetype相同的任務,還從公共Maven儲存庫下載並包含對象。
原型包屬性:
  • 群組ID: com.day.jcr.vault
  • 對象ID: simple-content-package-with-embedded-archetype
  • 版本: 1.0.2
  • 存放庫: adobe-public-releases
Maven命令:
mvn archetype:generate -DarchetypeGroupId=com.day.jcr.vault \
-DarchetypeArtifactId=simple-content-package-with-embedded-archetype \
-DarchetypeVersion=1.0.2 \
-DarchetypeRepository=adobe-public-releases

原型參數:
  • groupId:Maven所產生的內容套件的groupId。 該值將自動用於POM檔案。
  • artifactId:內容套件的名稱。 該值也用作項目資料夾的名稱。
  • 版本:內容套件的版本。
  • 套件:此參數不被使用。
  • appsFolderName:/apps下方的資料夾名稱。
  • artifactName:內容套件的說明。
  • embeddedArtifactId:要嵌入內容包中的對象的ID。
  • embeddedGroupId:要嵌入的對象的組ID。
  • 嵌入式版本:要嵌入的對象版本。
  • packageGroup:內容套件群組的名稱。 此值會為Content Package Maven Plugin的Package目標設定群組參數。
資料夾結構:
${artifactId}
   |- pom.xml
   |- README.txt
   |- src
      |- main
         |- content
             |- jcr_root
                 |- apps
                     |- ${appsFolderName}
                            |- components 
                            |- config
                            |- install
             |- META-INF
                 |- vault
                     |- config.xml
                     |- filter.xml
                     |- nodetypes.cnd
                     |- properties.xml
                     |- definition

多模組——內容——包——原型

建立包含檔案夾結構的大型專案,以開發AEM應用程式並將資源安裝至伺服器。
bundle 件夾包含儲存您開發的Java和JUnit源檔案的資料夾結構。 此資料夾中的pom.xml檔案將建立OSGi包。 POM中的以下值標識對象和包:
  • artifactID: ${artifactID}-bundle
  • Bundle-SymbolicName: ${groupId}.${artifactId}-bundle
${artifactID} ${groupId} 執行原型時為這些參數提供的值。
content 料夾包含已安裝至AEM例項的資源。 artifactID的值為 ${artifactID}multimodule-bundle
父資料夾包含管理Maven插件和依賴項的父POM。
原型包屬性:
  • 群組ID: com.day.jcr.vault
  • 對象ID: multimodule-content-package-archetype
  • 版本: 1.0.2
  • 存放庫: adobe-public-releases
Maven命令:
mvn archetype:generate -DarchetypeGroupId=com.day.jcr.vault \
-DarchetypeArtifactId=multimodule-content-package-archetype \
-DarchetypeVersion=1.0.2 \
-DarchetypeRepository=adobe-public-releases

原型參數:
  • groupId:Maven所產生的內容套件的groupId。 該值將自動用於POM檔案。
  • artifactId:內容套件的名稱。 該值也用作項目資料夾的名稱。
  • 版本:內容套件的版本。
  • 套件:此值不用於multimodule-content-package-archetype。
  • appsFolderName:/apps下方的資料夾名稱。
  • artifactName:內容套件的說明。
  • packageGroup:內容套件群組的名稱。 此值會為Content Package Maven Plugin的Package目標設定群組參數。
資料夾結構:
${artifactId}
   |- pom.xml
   |- bundle
      |- pom.xml
      |- src
         |- main
            |- java
               |- ${groupId}
                  |- SimpleDSComponent.java
         |- test
            |- java
               |- ${groupId}
                  |- SimpleUnitTest.java
   |- content
      |- pom.xml
      |- src
         |- main
            |- content
               |- jcr_root
                  |- apps
                     |- ${appsFolderName} 
                            |- config
                            |- install
                  |- META-INF
                      |- vault
                         |- config.xml
                         |- filter.xml
                         |- nodetypes.cnd
                         |- properties.xml
                         |- definition
                            |- .content.xml