JavaRush /Blog Java /Random-VI /Bắt đầu với Maven Alfresco SDK phần 2
CynepHy6
Mức độ
Великий Новгород

Bắt đầu với Maven Alfresco SDK phần 2

Xuất bản trong nhóm

Bắt đầu với Alfresco Maven SDK

Jeff Potts, tháng 1 năm 2014 <= ​​​​Phần 1
  • Chúng tôi làm việc với dự án của bạn trong IDE
  • Hiểu cấu trúc dự án
  • Tạo dự án được điều chỉnh cho quyền truy cập Chia sẻ
  • Phụ thuộc chung của dự án
  • mục tiêu chiến tranh
  • Hãy thử điều này: Tạo dự án Chia sẻ bằng cách sử dụng nguyên mẫu
  • Hiểu cấu trúc thư mục Share Access
  • Ra mắt thử nghiệm nội bộ trên Share
  • Quản lý phụ thuộc
  • Các chủ đề khác để nghiên cứu độc lập
  • Nơi để tìm thêm thông tin

Chúng tôi làm việc với dự án của bạn trong IDE

Điều này là không cần thiết nhưng nhiều người thích làm việc trong IDE hơn khi thiết lập Alfresco. Bất kỳ IDE nào cũng có thể thực hiện việc này, nhưng một trong những IDE phổ biến nhất là Eclipse vì vậy hãy xem nó hoạt động như thế nào.
Tôi đang sử dụng phiên bản Kepler của Eclipse Java EE IDE dành cho nhà phát triển web. Nó đi kèm với sự hỗ trợ Maven tích hợp.
Để mở dự án đã tạo, hãy làm như sau:
  • Tệp, Nhập, Maven, Dự án Maven hiện có. Bấm tiếp.
    Bắt đầu với Maven Alfresco SDK phần 2 - 1
  • Chỉ định thư mục chứa thư mục someco-mvn-tutorial-repo. Eclipse sẽ kiểm tra thư mục này và hiển thị dự án của bạn trong danh sách các dự án. Đảm bảo hộp kiểm bên cạnh tên dự án được chọn và nhấp vào Tiếp theo.
    Bắt đầu với Maven Alfresco SDK phần 2 - 2
  • Eclipse sẽ hiển thị các cài đặt Bảng điều khiển Plugin Maven. Bạn có thể yên tâm bỏ qua nó ngay bây giờ. Bấm vào Kết thúc.
    Bắt đầu với Maven Alfresco SDK phần 2 - 3
Dự án hiện đã được nhập vào không gian làm việc Eclipse của bạn.
Trong bảng Điểm đánh dấu, bạn có thể thấy danh sách các vấn đề về Maven có nội dung "Việc thực thi plugin không được cấu hình vòng đời bao gồm".
Maven có vấn đề với plugin Maven gặp vấn đề với plugin (set-version)
Để khắc phục:
  1. Nhấp chuột phải vào lỗi và chọn "Khắc phục nhanh".
  2. Chọn "Đánh dấu vĩnh viễn phiên bản đặt mục tiêu trong pom.xml là bị bỏ qua trong bản dựng Eclipse". Sẵn sàng.
  3. Chọn vị trí đặt POM của bạn (của tôi là com.someco : someco-mvn-tutorial-repo : 1.0-SNAPSHOT) và nhấp vào OK.
Sau khi xây dựng lại dự án, bạn có thể thấy một trong những vấn đề mới nhất "Cấu hình dự án không cập nhật với pom.xml". Để sửa chữa:
  1. Nhấp chuột phải vào dự án và chọn Maven, Cập nhật dự án.
  2. Hãy chắc chắn rằng dự án được chọn và nhấp vào OK.
Bây giờ Eclipse có lẽ đã hài lòng và các lỗi duy nhất có lẽ là do cảnh báo về một số nội dung nhập Java không được sử dụng.

Hiểu cấu trúc dự án

Cấu trúc thư mục dự án của bạn sẽ đẹp hơn một chút để khám phá trong IDE. Hãy xem chúng ta có gì ở đây.
  • pom.xml Trong thư mục gốc của dự án, bạn sẽ thấy pom.xml. Nó cho Maven biết mọi thứ cần biết về dự án của bạn. Bạn có nhớ một số cài đặt bạn đã quên khi tạo dự án từ mẫu không? Bạn có thể thực hiện thay đổi trong cài đặt tại đây. Ví dụ: phiên bản 1.1.1 của nguyên mẫu cho phép bạn làm việc với Alfresco Community Edition phiên bản 4.2.e. Nếu bạn muốn làm việc với một phiên bản khác - chỉ cần thay đổi một vài thuộc tính và yêu cầu Maven cập nhật chúng và Maven sẽ lo phần còn lại.
  • src/main/java Đây là nơi bạn nên tạo các gói của riêng mình để sắp xếp mã Java của mình. Những thứ như lớp thực thi hành động tùy chỉnh, hành vi tùy chỉnh, bộ điều khiển Java cho tập lệnh web đều có ở đây. Nếu bạn không biết tất cả những điều này là gì, đừng lo lắng, có sẵn các hướng dẫn ở đây . Những tệp này cuối cùng sẽ được đặt trong JAR. Khi AMP được cài đặt trong Alfresco WAR, JAR sẽ ở bên trong WEB-INF/lib .
  • src/test Mọi thứ bên trong src/test đều liên quan đến việc thực hiện kiểm thử. Bản thân các bài kiểm tra đơn vị được đặt trong src/test/java . Mọi tài nguyên mà các lớp này cần sẽ có trong src/test/resources. Bên trong src/test/properties/local bạn sẽ thấy tệp alfresco-global.properties . Nếu bạn đã biết gì về Alfresco thì bạn biết rằng nó được sử dụng để định cấu hình máy chủ Alfresco. Trong trường hợp này, nó chỉ được sử dụng để chạy máy chủ nhúng nhằm mục đích thử nghiệm.
  • src/main/amp Mọi thứ khác đều nằm ở đâu đó trong phần này của dự án. Cấu trúc AMP được ghi chép rõ ràng đến mức tôi không muốn sao chép nó ở đây. Tôi sẽ chỉ nêu ra những điểm chính:
    • Tệp module.properties cho Alfresco biết những điều cần biết về AMP chẳng hạn như ID, phiên bản, phiên bản tối thiểu và tối đa của Alfresco cần có để chạy AMP và bất kỳ AMP nào khác có cùng phần phụ thuộc.
    • Thư mục config/alfresco/module/someco-mvn-tutorial-repo là trái tim của AMP. Nơi bạn sẽ đặt các cấu hình tệp Spring XML, mô hình nội dung của các tệp XML và cấu hình giao diện người dùng. Như bạn sẽ thấy sau, tôi thích tách các thư mục con cho từng thứ này.
    • Nếu mô-đun của bạn bao gồm các tập lệnh web hoặc quy trình làm việc thì chúng sẽ không có trong thư mục mô-đun. Thay vào đó, chúng nằm trong config/alfresco/extension/templates/webscripts và config/alfresco/extension/workflows .
    • Mô-đun của bạn có thể bao gồm các tài nguyên máy khách phải được triển khai vào thư mục gốc của ứng dụng web. Chúng nằm ở src/main/amp/web trong thư mục css, jsp, script và hình ảnh.
Bạn nên kiểm tra toàn bộ dự án này vào kiểm soát nguồn. Bạn có thể muốn định cấu hình ứng dụng khách kiểm soát phiên bản của mình để bỏ qua thư mục đích và thư mục alf_data_dev.
Bây giờ bạn đã hiểu cách tạo dự án cho cài đặt cấp kho lưu trữ. Chúng ta hãy nhìn vào cấp độ Chia sẻ. Là một phần của việc này, tôi sẽ trình bày một tùy chọn khác để tạo dự án mà không cần rời khỏi Eclipse.

Tạo dự án được điều chỉnh cho quyền truy cập Chia sẻ

Trước tiên, bạn phải hiểu rằng cấu trúc của một dự án được tạo ở cấp kho lưu trữ hoàn toàn giống với cấu trúc của một dự án dành cho lớp truy cập Chia sẻ được điều chỉnh. Trong tương lai của Alfresco Maven SDK, có hai điều giúp phân biệt dự án Chia sẻ: Các phần phụ thuộc của dự án và AMP WAR sẽ được tích hợp vào.

Phụ thuộc chung của dự án

Hãy dừng lại một chút và nói về quản lý sự phụ thuộc. Hiện tại, việc triển khai theo mặc định, nguyên mẫu đã định cấu hình trong dự án pom.xml sử dụng các phần phụ thuộc của tạo phẩm kho lưu trữ ngoài trời. Các dự án được chia sẻ không có sự phụ thuộc này. Thực tế là nhiều dự án được chia sẻ hoàn toàn không sử dụng Java. Bây giờ, hãy chỉnh sửa pom.xml và xóa các phần phụ thuộc của kho lưu trữ ngoài trời. Điều này sẽ khiến các thành phần demo và các lớp kiểm tra liên quan phát sinh lỗi khi biên dịch. Chúng có thể được gỡ bỏ.

mục tiêu chiến tranh

Một điểm khác biệt của dự án Chia sẻ là WAR trong đó AMP được triển khai. Thay vì WAR ngoài trời, ở đây bạn cần triển khai Share WAR. Điều này được định cấu hình trong thuộc tính alfresco.client.war trong pom.xml của bạn. Theo mặc định, điều này được đặt thành "ngoài trời". Đối với dự án Chia sẻ, bạn cần thay thế nó bằng “share”.

Hãy thử điều này: Tạo dự án Chia sẻ bằng cách sử dụng nguyên mẫu

Hãy tạo một dự án mới với Cài đặt chung. Bạn có thể đi tới dòng lệnh và chạy cùng một lệnh nguyên mẫu như bạn đã chạy trước đó, trừ ArtifactId mới, sau đó thay đổi thuộc tính alfresco.client.war thành "share". Nếu bạn không sử dụng Eclipse, hãy tiếp tục thực hiện ngay bây giờ và bỏ qua phần tiếp theo.
Một tùy chọn khác là định cấu hình Eclipse để bạn có thể tạo dự án Alfresco mới bằng SDK Alfresco Maven mà không cần rời khỏi IDE. Hãy làm điều đó.
  1. Tệp, Dự án Maven mới.
  2. Chọn thư mục chứa thư mục dự án "repo", nhấp vào Tiếp theo.
    Bắt đầu với Maven Alfresco SDK phần 2 - 4
  3. Nhấp vào Cấu hình và chúng ta có thể thêm thư mục Alfresco vào danh sách.
    Bắt đầu với Maven Alfresco SDK phần 2 - 5
  4. Nhấp vào Thêm danh mục từ xa
  5. Chọn "https://artifacts.alfresco.com/nexus/content/groups/public/archetype-catalog.xml" làm Tệp danh mục. Chọn mô tả "Các nguyên mẫu ngoài trời". Sau đó, nhấp vào OK và OK lần nữa gần bảng Tùy chọn.
    Bắt đầu với Maven Alfresco SDK phần 2 - 6
  6. Bây giờ hãy chọn "Alfresco Archetypes" trong thư mục và bạn sẽ thấy một loạt các nguyên mẫu trong danh sách.
  7. Chọn "org.alfresco.maven.archetype" và hai nguyên mẫu giống nhau sẽ xuất hiện trong bộ lọc như ở phần đầu của hướng dẫn.
  8. Chọn alfresco-amp-archetype và nhấp vào Tiếp theo.
    Bắt đầu với Maven Alfresco SDK phần 2 - 7
  9. Chọn "com.someco" cho groupId, "someco-mvn-tutorial-share" làm ArtifactId và thay đổi alfresco_target_amp_client_war thành "share". Bấm vào Kết thúc.
    Bắt đầu với Maven Alfresco SDK phần 2 - 8
Dự án Chia sẻ của bạn hiện đang ở trong không gian làm việc. Lần tới khi bạn tạo một dự án mới bằng cách sử dụng nguyên mẫu, sẽ mất ít bước hơn một chút vì bạn sẽ không cần thêm thư mục.

Hiểu cấu trúc thư mục Share Access

Như tôi đã đề cập trước đó, cấu trúc của dự án này hoàn toàn giống với dự án repo của chúng tôi. Sự khác biệt duy nhất là trong dự án repo, những thứ như tập lệnh web được đặt bên trong src/main/amp/config/alfresco/extension/templates/webscripts. Trong dự án chung, chúng sẽ ở trong src/main/amp/config/alfresco /web-extension/site-webscripts.

Ra mắt thử nghiệm nội bộ trên Share

Thường thì bạn sẽ làm việc trên cả hai cấp độ cài đặt cùng một lúc. Cấp độ Chung của bạn cần một kho lưu trữ tin nhắn. Một cách để làm điều này là yêu cầu Maven bắt đầu dự án repo của bạn bằng cách sử dụng:
cd someco-mvn-tutorial-repo
mvn Integration-test -Pamp-to-war
Và sau đó chạy dự án Chia sẻ của bạn bằng cách sử dụng:
cd someco-mvn-tutorial-share
mvn Integration-test -Pamp-to-war -Dmaven.tomcat.port=8081
Khi cả hai máy chủ đều hoạt động, bạn có thể mở http://localhost:8081/share và đăng nhập để kiểm tra mô-đun của mình.

Quản lý phụ thuộc

Điều thú vị về Apache Maven là nó quản lý các phần phụ thuộc của dự án cho bạn. Tất cả những gì bạn cần làm là cho Maven biết về chúng bằng cách định cấu hình tệp pom.xml của bạn. Theo mặc định, Alfresco Maven SDK tạo hai phần phụ thuộc cho dự án của bạn: alfresco-repository và junit.
Như tôi đã viết trước đó, dự án Alfresco Share không phụ thuộc vào kho Alfresco nên đối với dự án someco-mvn-tutorial-share, những phụ thuộc này có thể được loại bỏ. Nhưng nếu tôi muốn đưa một số nội dung Java vào dự án Chia sẻ của mình, chẳng hạn như các tập lệnh web dựa trên Java thì sao? Trong trường hợp này, chúng ta cần thêm các phụ thuộc.
Các tập lệnh web có thể chạy ở mọi cấp độ. Nếu bạn viết các tập lệnh web dựa trên Java trong dự án repo của mình, lớp sẽ được xây dựng vì các phần phụ thuộc của tạo phẩm kho lưu trữ ngoài trời lần lượt phụ thuộc vào tạo phẩm spring-webscripts. Bạn có thể thấy điều này nếu bạn mở Phân cấp phụ thuộc trong Eclipse trong tệp pom.xml của mình:
Hệ thống phân cấp phụ thuộc trong Eclipse
Hệ thống phân cấp phụ thuộc trong Eclipse Một tùy chọn khác. Bạn có thể xem hệ thống phân cấp phụ thuộc bằng cách chạy:
phụ thuộc mvn: danh sách
Vì vậy, để thêm các tập lệnh web dựa trên Java vào dự án Chia sẻ của bạn, chúng ta cần thêm các tập lệnh web mùa xuân làm phần phụ thuộc. Bạn có thể làm điều này bằng cách chỉnh sửa pom.xml như thế này:
<sự phụ thuộc>
    <groupId>org.springframework.extensions.surf</groupId>
    <artifactId>webscript mùa xuân</artifactId>
    <version>1.2.0-M14</version>
    <scope>được cung cấp</scope>
</phụ thuộc>
Giờ đây, các tập lệnh web dựa trên Java sẽ có thể tìm thấy lớp cha của chúng - DeclarativeWebScript.
Bạn có thể thắc mắc làm thế nào bạn biết được rằng lớp DeclarativeWebScript đã được đưa vào tạo phẩm spring-webscripts. Chà, ví dụ, bạn đã tìm thấy nó bằng cách truy cập http://artifacts.alfresco.com . Bạn có thể tìm kiếm theo lớp và bạn sẽ được hiển thị tất cả các hiện vật có chứa nó.

Các chủ đề khác để nghiên cứu độc lập

Bây giờ bạn đã biết cách sử dụng Alfresco Maven SDK để tạo dự án cũng như làm kho lưu trữ Alfresco và định cấu hình Alfresco Share. Nếu bạn là người mới bắt đầu phát triển Alfresco, tôi hy vọng bạn sẽ đồng ý rằng việc kết hợp một dự án để bắt đầu thực sự dễ dàng. Nếu bạn đã bắt đầu sử dụng Alfresco nhưng vẫn đang sử dụng SDK cũ, tôi hy vọng điều này sẽ thúc đẩy bạn chuyển sang SDK mới để tạo AMP của mình.
Có nhiều chủ đề chưa được đề cập trong hướng dẫn này. Tôi sẽ để chúng cho bạn khám phá theo ý riêng của bạn. Dưới đây là một số trong số họ:
  • SDK Alfresco Maven hỗ trợ tải lại lớp động khi được sử dụng cùng với công cụ có tên JRebel .
  • Hướng dẫn này bao gồm nguyên mẫu AMP. Nhưng Alfresco Maven SDK bao gồm một nguyên mẫu khác gọi là Tất cả trong một. Nguyên mẫu này cung cấp cho bạn bản cài đặt Alfresco hoàn chỉnh bao gồm SOLR.
  • Alfresco Maven SDK được hỗ trợ ở cả Phiên bản cộng đồng và Phiên bản doanh nghiệp. Nếu bạn cần hỗ trợ truy cập các tạo phẩm trong Phiên bản doanh nghiệp, hãy liên hệ với bộ phận Hỗ trợ của Alfresco.

Nơi để tìm thêm thông tin

<= Phần 1
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION