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

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

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 2 =>
  • Giới thiệu
  • Các khái niệm cơ bản
  • Apache Maven
  • Gói mô-đun Alfresco (AMP)
  • SDK Maven Alfresco
  • Bạn có thể nói gì về SDK dựa trên Ant cũ?
  • Dự án đầu tiên của bạn
  • Hãy khởi động nó
  • Nó là cái gì vậy?
  • Các lệnh xây dựng khác
  • Ghi nhật ký

Giới thiệu

Hướng dẫn này được tạo cho những người cần cấu hình Alfresco trong một dự án theo một cách nào đó. Và vì vậy lúc đầu bạn nghĩ, "Đây là cái gì vậy?!" Nhưng cuối cùng bạn sẽ học được:

  • Cách tạo dự án Alfresco từ đầu bằng Alfresco Maven SDK
  • Điều gì sẽ xảy ra tùy thuộc vào cài đặt của bạn
  • Cách tạo và chạy thử nghiệm
  • Cách tạo một tạo phẩm phù hợp để nhúng hoặc chia sẻ với cộng đồng

Hướng dẫn này nên được coi là điểm khởi đầu trước khi bạn chuyển sang tìm hiểu chi tiết hơn về những thứ như lập mô hình nội dung, tùy chỉnh hành động và hành vi, quy trình làm việc bổ sung hoặc tập lệnh web.

Trước khi chúng ta bắt đầu, xin nói lại một chút ngoài đề: Hầu như luôn có nhiều con đường thay thế cho một giải pháp. Trong hướng dẫn này, tôi sẽ hướng dẫn bạn theo cách đơn giản và trực tiếp nhất, một lộ trình an toàn sẽ giúp bạn tìm ra cách nhanh hơn. Sau này bạn có thể thay đổi một số thứ hoặc khám phá những tuyến đường khác nếu muốn.

Các khái niệm cơ bản.

Bạn không cần biết quá nhiều về Maven, Alfresco hoặc lý do cần có SDK này trước khi bắt đầu sử dụng nó, nhưng một số kiến ​​thức có thể hữu ích theo một số cách, vì vậy hãy để tôi hướng dẫn nhanh cho bạn các khái niệm cơ bản.

Apache Maven

Apache Maven là một công cụ quản lý xây dựng. Nó có nhiều tính năng, nhưng tính năng chính là nó tiết kiệm thời gian trong việc tìm ra phần phụ thuộc nào (và phần phụ thuộc của phần phụ thuộc) mà dự án của bạn dựa vào. Maven có thể truy xuất và lưu vào bộ nhớ đệm các phần phụ thuộc này cho bạn. Nếu bạn đã từng dành thời gian cố gắng tìm ra tệp JAR nào đứng sau tệp JAR nào, thì tính hữu ích của một công cụ như vậy là rõ ràng.

Gói mô-đun Alfresco (AMP)

AMP là một tệp ZIP có cấu trúc thư mục tuân theo các quy ước nhất định. Các tệp AMP được sử dụng để dễ dàng chia sẻ và triển khai cài đặt trên nền tảng Alfresco. Nếu dự án của bạn cần tạo cài đặt tùy chỉnh ở cấp repo (ứng dụng web/ngoài trời) thì bạn tạo một "repo" AMP. Nếu dự án của bạn cần tạo cài đặt ở cấp độ Chia sẻ (ứng dụng web/chia sẻ), bạn hãy tạo AMP "chia sẻ". Điều khá điển hình đối với một dự án là khi cần thay đổi ở cả hai cấp độ, bạn sẽ tạo hai AMP.

SDK Maven Alfresco

Các lập trình viên ngày nay đã quen với các framework mạnh mẽ, trong đó một thư mục trống sẽ chứa đầy các tệp trong một phút và ngay sau đó dự án của bạn đã sẵn sàng khởi chạy. Tại sao các nhà phát triển Alfresco nên chấp nhận mức giá thấp hơn?

Mục tiêu của SDK dựa trên Maven là tạo điều kiện đơn giản nhất có thể để bắt đầu phát triển cho Alfresco. SDK bao gồm một mẫu dự án ("nguyên mẫu" trong thuật ngữ của Maven) và một số tính năng tích hợp cho Maven biết cách tạo AMP và triển khai chúng trên Alfresco.

Nếu bạn viết ứng dụng của riêng mình tách biệt với Alfresco và Share WAR thì bạn không cần SDK Alfresco Maven. Nhưng nếu bạn định viết mã chạy trong bất kỳ ứng dụng web nào trong số này thì Alfresco Maven SDK là nơi để bắt đầu.

Còn SDK dựa trên Ant cũ thì sao?

Alfresco đã cung cấp SDK có thể tải xuống này ngay từ đầu. SDK chứa một vùng chứa ZIP với các phần phụ thuộc cần thiết để biên dịch, mã nguồn, tài liệu và các dự án Eclipse mẫu. Những ví dụ này sử dụng trình xây dựng dựa trên Ant.

Không có gì sai với cách tiếp cận này, nhưng các nền tảng phát triển đã phát triển và SDK của Ant đã không thể phát triển cùng với chúng. Tính đến hôm nay, các phần của các ví dụ này đã lỗi thời (ví dụ: API dịch vụ Web gốc hoặc giao diện người dùng Alfresco Explorer) và không có đủ ví dụ cho các phần cực kỳ quan trọng như CMIS, tập lệnh Web và quy trình công việc nâng cao sử dụng Activiti.

Ngoài các ví dụ lỗi thời, cần có Ant SDK cũ. Các nhà phát triển đang làm quá nhiều việc. Với Alfresco Maven SDK, bạn thậm chí không phải tải xuống bất cứ thứ gì - bạn chỉ cần tạo dự án của mình và bắt đầu viết mã.

Bây giờ bạn đã hiểu rõ về Apache Maven, AMP và Alfresco Maven SDK. Đã đến lúc chứng kiến ​​tất cả hoạt động

Dự án đầu tiên của bạn

Hãy để tôi chỉ cho bạn cách bắt đầu phát triển Alfresco bằng Alfresco Maven SDK dễ dàng như thế nào. Trước khi chúng ta bắt đầu, tôi phải nhắc bạn cài đặt JDK 1.7, cũng như cài đặt Apache Maven 3. Bạn không cần phải tải xuống bất cứ thứ gì khác. Nghiêm túc. Ngay cả Alfresco.

  1. Tạo một thư mục trống. Chúng tôi sẽ sớm tạo một số thư mục bổ sung trong đó.
  2. Bây giờ hãy tạo một dự án trống. Giả sử bạn muốn tạo thứ gì đó mà bạn sẽ triển khai vào kho lưu trữ Alfresco, ví dụ: mô hình nội dung tùy chỉnh, một số hành động quy tắc tùy chỉnh, một bộ tập lệnh web mới hoặc một số quy trình kinh doanh của Activiti. Nó thực sự không quan trọng. Để tạo một dự án mới, hãy chạy lệnh:
    nguyên mẫu mvn:tạo\
    -DarchetypeCatalog=https://artifacts.alfresco.com/nexus/content/groups/public/archetype-catalog.xml\
    -Dfilter=org.alfresco.maven.archetype:
  3. Maven sẽ thực hiện một số công việc và cuối cùng yêu cầu bạn chọn "nguyên mẫu". Lựa chọn cơ bản của bạn từ thư viện mẫu dự án. Có hai có sẵn ở đây. Một cái được gọi là "alfresco-amp-archetype" và cái còn lại là "alfresco-allinone-archetype". Mục tiêu của chúng tôi là tạo ra một AMP có thể triển khai trong Alfresco, vì vậy điểm đầu tiên là thứ chúng tôi cần. Gõ 1 và nhấn Enter.
  4. Bây giờ Maven yêu cầu bạn cung cấp một phiên bản cụ thể của mẫu mà bạn sẽ làm cơ sở cho dự án của mình. Hiện tại, phiên bản mới nhất là 1.1.1 là tùy chọn thứ năm trong danh sách nên hãy nhấn phím 5 và Enter.
  5. Maven hỏi về groupId. Nó tương tự như "gói Java". Các ví dụ của tôi luôn dựa trên thực tế là tôi làm việc tại một công ty hư cấu tên là SomeCo, vì vậy tôi sẽ nhập "com.someco" vào đây. Nhập nội dung nào đó có ý nghĩa với bạn và nhấn Enter.
  6. Tiếp theo là ArtifactId. Hãy coi nó như tên dự án của bạn. Đây cũng sẽ trở thành ID AMP của bạn, vì vậy hãy chọn thứ gì đó đặc biệt. Bạn cũng nên thêm dòng "-repo" vào ArtifactId của mình vì mô-đun này sẽ được tích hợp vào kho lưu trữ. Tôi sẽ đặt tên cho mình là "someco-mvn-tutorial-repo" và nhấn Enter.

  7. Lúc này, Maven sẽ hiển thị cho bạn các giá trị bạn đã nhập, thêm một số giá trị mặc định khác và yêu cầu bạn xác nhận lựa chọn của mình. Nếu bạn muốn thay đổi bất cứ điều gì, bạn có thể chọn "N" rồi thực hiện thay đổi hoặc "Y" để tiếp tục. Bạn luôn có thể thay đổi các giá trị này sau nếu cần. Nhấn "Y" rồi Enter.

Maven bây giờ sẽ thực hiện một số công việc. Khi nó kết thúc, bạn sẽ nhận được những điều sau đây:

  • Một dự án được cấu trúc để hỗ trợ sự phát triển Alfresco của bạn
  • Các tập tin cấu hình mặc định
  • Mã Java tối thiểu dành cho các bài kiểm tra đơn vị bổ sung để kiểm tra xem mọi thứ có hoạt động không
  • Cần có cấu hình để chạy phiên bản Alfresco cục bộ để thử nghiệm
  • Tệp XML POM (Mô hình đối tượng dự án) mặc định cho Maven biết dự án của bạn có những phụ thuộc nào

Hãy chạy nó

Bạn chưa tải lên bất cứ điều gì. Bạn chưa chỉnh sửa gì cả. Tất cả những gì bạn làm là yêu cầu Maven tạo một dự án dựa trên mẫu, nhưng tôi có tin vui: dự án của bạn hiện đã sẵn sàng để chạy.

Thử cái này xem sao:

cd someco-mvn-tutorial-repo
mvn Integration-test -Pamp-to-war

Nếu nhìn vào kết quả đầu ra, bạn sẽ thấy Maven tải xuống mọi thứ cần thiết để biên dịch dự án, tạo AMP, triển khai AMP cho Alfresco WAR, triển khai Alfresco WAR đến máy chủ Tomcat nhúng và chạy nó. Cuối cùng bạn sẽ thấy một cái gì đó tương tự như:

15-01-2014 18:01:19,339 THÔNG TIN [repo.module.ModuleServiceImpl] [localhost-startStop-1] Đã tìm thấy 1 mô-đun.
15-01-2014 18:01:19,480 THÔNG TIN [repo.module.ModuleServiceImpl] [localhost-startStop-1] Cài đặt mô-đun 'someco-mvn-tutorial-repo' phiên bản 1.0.1401151758.

Điều đó có nghĩa là các mô-đun dự án của bạn đã được máy chủ Alfresco tạo và công nhận.

Sau khi bạn thấy:

Ngày 16 tháng 1 năm 2014 8:38:20 sáng org.apache.coyote.AbstractProtocol bắt đầu THÔNG TIN: Bắt đầu ProtocolHandler ["http-bio-8080"]

Bạn sẽ có thể mở:

http://localhost:8080/alfresco

Và đăng nhập bằng "admin" và "admin".

Khi bạn đã chiêm ngưỡng nó xong, hãy quay lại cửa sổ nơi bạn đã chạy lệnh Maven và nhấn ctrl-c để tắt máy chủ.

Nếu gặp lỗi hết bộ nhớ khi chạy thử nghiệm tích hợp, bạn có thể cần nhập một số tham số JVM cho các tùy chọn bộ nhớ trong Maven. Một giải pháp khả thi là đặt biến môi trường MAVEN_OPTS. Ví dụ: tôi đặt giá trị của mình thành:

-Xmx1024M -XX:MaxPermSize=512m

Sử dụng MAVEN_OPTS để đặt đủ để không gặp lỗi tràn bộ nhớ.

Nó là cái gì vậy?

Bạn đã yêu cầu Maven chạy "thử nghiệm tích hợp" để sử dụng cấu hình "amp-to-war". Điều này dẫn đến việc xây dựng dự án, triển khai dự án dưới dạng AMP cho Alfresco WAR mới và chạy máy chủ Tomcat nhúng. Sau đó, bạn có thể đăng nhập vào ứng dụng khách Alfresco Explorer cũ và làm việc với kho lưu trữ, kiểm tra mô-đun của mình.

Nếu nhìn vào thư mục đích, bạn sẽ thấy AMP đã được tạo và triển khai sau đó trong Alfresco WAR. Trong trường hợp của tôi, nó được gọi là "someco-mvn-tutorial-repo.amp". Tệp này là thứ bạn nên cung cấp cho nhóm CNTT của mình nếu bạn sẵn sàng áp dụng các thay đổi cấp độ kho lưu trữ của mình cho máy chủ Alfresco trực tiếp.

Các lệnh xây dựng khác

Không phải lúc nào bạn cũng cần khởi động máy chủ Alfresco và để nó chạy. Nếu chỉ muốn xây dựng dự án, chạy thử nghiệm đơn vị và đóng gói AMP, bạn có thể thực hiện:

gói mvn

Nếu bạn muốn cài đặt AMP bên trong kho lưu trữ Maven cục bộ của mình, hãy chạy:

cài đặt mvn

Bạn có thể nhận thấy rằng dự án bao gồm một bài kiểm thử đơn vị đơn giản theo mặc định. Theo mặc định, Maven sẽ tự động chạy thử nghiệm đơn vị trong dự án của bạn. Bạn có thể thấy điều này trong đầu ra của giao diện điều khiển:

-------------------------------------------------- -----
 KIỂM TRA
-------------------------------------------------- -----
Đang chạy org.alfresco.demoamp.test.DemoComponentTest

Đó là một cách thực hành tốt để đảm bảo dự án của bạn luôn bao gồm các bài kiểm thử đơn vị và chạy chúng mỗi khi bạn xây dựng. Nhiều tổ chức sử dụng công cụ CI (Tích hợp liên tục) phụ thuộc vào các thử nghiệm này. Nếu vì lý do nào đó bạn không muốn chạy thử nghiệm, bạn có thể bỏ qua nó, đại loại như thế này:

cài đặt mvn -DskipTests=true

Nếu bạn muốn xóa tất cả nội dung đã biên dịch mà Maven tạo và bắt đầu lại, bạn có thể chạy:

mvn sạch

Nếu bạn cũng muốn xóa cơ sở dữ liệu tích hợp, nội dung Alfresco đã lưu, chỉ mục và nhật ký luôn được tạo khi chạy thử nghiệm máy chủ, bạn có thể chạy:

mvn sạch -Purge

Bây giờ bạn đã biết cách tạo dự án Alfresco mới bằng cách sử dụng mẫu và có kiến ​​thức cơ bản về xây dựng có hoặc không có thử nghiệm. Bước tiếp theo là tìm hiểu cách làm việc với dự án của bạn trong IDE.

Ghi nhật ký

Tệp log4j.properties nằm trong thư mục mô-đun, tệp log4j.properties bao gồm

log4j.logger.org.alfresco.demoamp.DemoComponent=${module.log.level}

Có thể bạn sẽ muốn thay thế cài đặt này bằng cài đặt của riêng mình phù hợp với cấu trúc gói của bạn.

Để định cấu hình module.log.level, bạn có thể thực hiện việc này khi khởi động Maven, như thế này:

cài đặt mvn -Dmodule.log.level=DEBUG

Hoặc bạn có thể chỉnh sửa pom.xml và thêm phần này vào thuộc tính, đại loại như thế này:

<module.log.level>GỠ LỖI</module.log.level>

Nếu bạn thay đổi pom.xml thì AMP sẽ nhận được các cài đặt này khi được tạo và sau đó, WAR mà AMP được triển khai sẽ ghi nhật ký. Đây có thể (hoặc có thể không) là những gì bạn muốn. Nếu bạn không chắc chắn, tốt hơn hết bạn nên đặt các giá trị bằng dòng lệnh vì điều này sẽ giúp bạn tránh vô tình làm xáo trộn các giá trị trong AMP của mình.

Kiến trúc sư ECM


Tác phẩm này được cấp phép theo Giấy phép Creative Commons Ghi công-Chia sẻ tương tự 3.0 Chưa chuyển đổi . Phần 2 =>
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION