JavaRush /Java Blog /Random-TW /Maven Alfresco SDK 入門第 2 部分
CynepHy6
等級 34
Великий Новгород

Maven Alfresco SDK 入門第 2 部分

在 Random-TW 群組發布

Alfresco Maven SDK 入門

傑夫·波茨,2014 年 1 月 <= 第 1 部分
  • 我們在 IDE 中處理您的項目
  • 了解專案結構
  • 建立適合共享存取的項目
  • 一般項目依賴項
  • 戰爭目標
  • 讓我們試試這個:使用原型創建共享項目
  • 了解共享存取目錄結構
  • 啟動 Share 內部測試
  • 依賴管理
  • 其他獨立研究主題
  • 哪裡可以找到更多信息

我們在 IDE 中處理您的項目

這不是必需的,但許多人在設定 Alfresco 時更喜歡在 IDE 中工作。任何 IDE 都可以執行此操作,但最受歡迎的 IDE 之一是 Eclipse,所以讓我們看看它是如何運作的。
我正在使用針對 Web 開發人員的 Eclipse Java EE IDE 的 Kepler 版本。它帶有內建的 Maven 支援。
若要開啟已建立的項目,請執行下列操作:
  • 文件、導入、Maven、現有 Maven 專案。點擊下一步。
    Maven Alfresco SDK 入門第 2 - 1 部分
  • 指定包含 someco-mvn-tutorial-repo 目錄的目錄。Eclipse 將檢查此目錄並在項目清單中顯示您的項目。確保選取項目名稱旁的複選框,然後按一下「下一步」。
    Maven Alfresco SDK 入門第 2 - 2 部分
  • Eclipse 將顯示 Maven 插件面板設定。您現在可以安全地忽略它。按一下“完成”。
    Maven Alfresco SDK 入門第 2 - 3 部分
該專案現在已匯入到您的 Eclipse 工作區中。
在「標記」面板中,您可以看到 Maven 問題列表,其中顯示「生命週期配置未涵蓋插件執行」。
Maven 有插件問題 Maven 有插件問題(設定版本)
要修復:
  1. 右鍵單擊錯誤並選擇“快速修復”。
  2. 選擇「在 Eclipse 建置中將 pom.xml 中的目標集版本永久標記為忽略」。準備好。
  3. 選擇 POM 所在的位置(我的是 com.someco : someco-mvn-tutorial-repo : 1.0-SNAPSHOT),然後按一下「確定」。
重建專案後,您可能會看到最新的問題之一「Project configuration is not up-to-date with pom.xml」。更正:
  1. 右鍵點選該項目並選擇 Maven、更新項目。
  2. 確保選擇該項目並按一下“確定”。
現在 Eclipse 可能很高興,唯一的錯誤應該是由於一些未使用的 Java 導入的警告所致。

了解專案結構

您的專案的目錄結構更適合在 IDE 中探索。讓我們看看這裡有什麼。
  • pom.xml在專案的根目錄中,您可以看到 pom.xml。它告訴 Maven 需要了解的有關您的專案的所有資訊。您還記得從模板建立專案時忘記的一些設定嗎?您可以在此處變更設定。例如,原型的版本 1.1.1 允許您使用 Alfresco Community Edition 版本 4.2.e。如果您想使用不同的版本 - 只需更改一些屬性並告訴 Maven 更新它們,它就會處理其餘的內容。
  • src/main/java您應該在此處建立自己的套件來組織 Java 程式碼。諸如自訂操作執行器類別、自訂行為、Web 腳本的 Java 控制器之類的東西都在這裡。如果您不知道這一切是什麼,請不要擔心,這裡有教學。這些檔案最終將被放置在 JAR 中。當 AMP 安裝在 Alfresco WAR 中時,JAR 將位於WEB-INF/lib內。
  • src/test src/test 中的所有內容都與測試執行相關。單元測試本身位於src/test/java。這些類別所需的任何資源都將位於 src/test/resources 中。在src/test/properties/local中,您將看到一個alfresco-global.properties檔案。如果您已經了解 Alfresco,您就會知道它用於配置 Alfresco 伺服器。在這種情況下,這僅用於運行嵌入式伺服器,用於測試目的。
  • src/main/amp其他所有內容都在專案的這一部分。AMP 結構已有詳細記錄,我不想在這裡重複它。我只指出要點:
    • module.properties檔案告訴 Alfresco 它需要了解 AMP 的信息,例如其 ID、版本、運行 AMP 所需的 Alfresco 的最低和最高版本,以及具有相同依賴項的任何其他 AMP。
    • config/alfresco/module/someco-mvn-tutorial-repo目錄是 AMP 的核心。您將放置 Spring XML 檔案配置、XML 檔案的內容模型和使用者介面配置的位置。正如您稍後將看到的,我更喜歡為每個內容單獨建立子目錄。
    • 如果您的模組包含 Web 腳本或工作流程,它們不會包含在模組目錄中。相反,它們位於config/alfresco/extension/templates/webscripts 和 config/alfresco/extension/workflows
    • 您的模組可能包含必須部署到 Web 應用程式根目錄的用戶端資源。它們位於src/main/amp/web中的 css、jsp、scripts 和 images 目錄中。
您應該將整個專案檢查到原始程式碼管理。您可能希望將版本控制用戶端配置為忽略目標目錄和 alf_data_dev 目錄。
現在您了解如何為儲存庫層級設定建立專案。讓我們來看看共享等級。作為本文的一部分,我將展示另一個無需離開 Eclipse 即可建立專案的選項。

建立適合共享存取的項目

首先,您必須了解在儲存庫層級建立的專案的結構與適用於共用存取層的專案的結構完全相同。在未來的 Alfresco Maven SDK 中,Share 專案有兩點與眾不同:專案的依賴項和將內建的 AMP WAR。

一般項目依賴項

我們先停下來談談依賴管理。目前,預設情況下,專案 pom.xml 中配置的原型使用 alfresco-repository 工件的依賴項。共享項目沒有這種依賴性。事實上,許多共享專案根本不使用 Java。現在讓我們編輯 pom.xml 並刪除 alfresco-repository 依賴項。這將導致演示組件和關聯的測試類別在編譯時產生錯誤。它們可以被移除。

戰爭目標

Share 專案的另一個差異是部署 AMP 的 WAR。這裡您需要部署到 Share WAR,而不是 alfresco WAR。這是在 pom.xml 的 alfresco.client.war 屬性中配置的。預設情況下,此設定為“alfresco”。對於共享項目,您需要將其替換為「共享」。

讓我們試試這個:使用原型創建共享項目

讓我們使用常規設定來建立一個新項目。您可以轉到命令列並執行與先前執行的相同的 archetype 命令,減去新的artifactId,然後將 alfresco.client.war 屬性變更為「share」。如果您沒有使用 Eclipse,請立即執行並跳過下一部分。
另一個選擇是設定 Eclipse,以便您可以使用 Alfresco Maven SDK 建立新的 Alfresco 項目,而無需離開 IDE。讓我們這樣做吧。
  1. 文件,新建 Maven 專案。
  2. 選擇包含「repo」專案目錄的目錄,按一下「下一步」。
    Maven Alfresco SDK 入門第 2 - 4 部分
  3. 點擊“配置”,我們可以將 Alfresco 目錄新增到清單中。
    Maven Alfresco SDK 入門第 2 - 5 部分
  4. 按一下新增遠端目錄
  5. 選擇「https://artifacts.alfresco.com/nexus/content/groups/public/archetype-catalog.xml」作為目錄檔案。選擇描述“露天原型”。然後,按一下“確定”,然後在“首選項”面板附近再次按一下“確定”。
    Maven Alfresco SDK 入門第 2 - 6 部分
  6. 現在在目錄中選擇“Alfresco Archetypes”,您將在清單中看到一堆原型。
  7. 選擇“org.alfresco.maven.archetype”,與教學開始時相同的兩個原型將出現在過濾器中。
  8. 選擇 alfresco-amp-archetype 並按一下下一步。
    Maven Alfresco SDK 入門第 2 - 7 部分
  9. 選擇“com.someco”作為groupId,“someco-mvn-tutorial-share”作為artifactId,並將alfresco_target_amp_client_war更改為“share”。按一下“完成”。
    Maven Alfresco SDK 入門第 2 - 8 部分
您的共享項目現在位於工作區。下次使用原型建立新專案時,步驟會少一些,因為您不需要新增目錄。

了解共享存取目錄結構

正如我之前提到的,這個專案的結構與我們的 repo 專案完全相同。唯一的區別是,在repo 專案中,諸如Web 腳本之類的內容位於src/main/amp/config/alfresco/extension/templates/webscripts 中。在General 專案中,它們將位於src/main/amp/config /alfresco 中/web-extension/site-webscripts。

啟動 Share 內部測試

通常您會同時處理兩個層級的設定。您的一般層級需要一個訊息儲存庫。一種方法是告訴 Maven 使用以下命令啟動您的儲存庫專案:
cd someco-mvn-教程-repo
mvn 整合測試 -Pamp-to-war
然後使用以下命令運行您的 Share 專案:
cd someco-mvn-教程-分享
mvn 整合測試-Pamp-to-war -Dmaven.tomcat.port=8081
兩台伺服器啟動後,您可以開啟 http://localhost:8081/share 並登入測試您的模組。

依賴管理

Apache Maven 的一個很酷的地方是它可以為您管理專案的依賴項。您需要做的就是透過配置 pom.xml 告訴 Maven 有關它們的資訊。預設情況下,Alfresco Maven SDK 會為您的專案建立兩個依賴項:alfresco-repository 和 junit。
正如我之前所寫,Alfresco Share 專案不依賴 Alfresco 儲存庫,因此對於 someco-mvn-tutorial-share 項目,可以刪除這些依賴項。但是,如果我想將一些 Java 內容放入我的 Share 專案中,例如基於 Java 的 Web 腳本,該怎麼辦?在這種情況下,我們需要新增依賴項。
Web 腳本可以在任何層級運作。如果您在 repo 專案中編寫基於 Java 的 Web 腳本,則會建立該類,因為 alfresco-repository 工件的依賴項又依賴 spring-webscripts 工件。如果您在 Eclipse 中的 pom.xml 檔案中開啟依賴關係層次結構,您可以看到這一點:
Eclipse 中的依賴關係層次結構
Eclipse 中的依賴層次結構 另一種選擇。您可以透過執行以下命令來查看依賴關係層次結構:
mvn 依賴項:列表
因此,要將基於 Java 的 Web 腳本新增到 Share 專案中,我們需要新增 spring-webscripts 作為依賴項。您可以透過編輯 pom.xml 來做到這一點,如下所示:
<依賴關係>
    <groupId>org.springframework.extensions.surf</groupId>
    <artifactId>spring-webscripts</artifactId>
    <版本>1.2.0-M14</版本>
    <範圍>提供</範圍>
</依賴>
現在基於Java的Web腳本將能夠找到它們的父類別—DeclarativeWebScript。
您可能想知道如何知道 DeclarativeWebScript 類別包含在 spring-webscripts 工件中。嗯,例如,透過造訪http://artifacts.alfresco.com找到它。您可以按類別搜索,您將看到包含該類別的所有工件。

其他獨立研究主題

現在您知道如何使用 Alfresco Maven SDK 建立專案並作為 Alfresco 儲存庫並配置 Alfresco Share。如果您是 Alfresco 開發的新手,我希望您會同意,組成一個專案來開始是非常容易的。如果您已經熟悉了 Alfresco 但仍在使用舊的 SDK,我希望這能激勵您切換到新的 SDK 來創建 AMP。
本教程中未涵蓋許多主題。我將把它們留給您自行探索。這裡是其中的一些:
  • Alfresco Maven SDK 與名為JRebel的工具結合使用時支援動態類別重新載入。
  • 本教程涵蓋 AMP 原型。但 Alfresco Maven SDK 包含另一種原型,稱為 All-in-One。這個原型為您提供了完整的露天安裝,包括 SOLR。
  • 社群版和企業版皆支援 Alfresco Maven SDK。如果您在存取企業版中的工件時需要協助,請聯絡 Alfresco 支援。

哪裡可以找到更多信息

<= 第 1 部分
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION