Cấu trúc của một dự án plugin
Cập nhật lúc 1764560201000
Giả sử dự án của chúng ta có tên
book-store thì nó sẽ gồm các thành phần sau:- book-store-admin-plugin: Module cho phần admin, chứa các lớp modal, controller và các tập tin static và template cho view.
- book-store-sdk: Module chứa các lớp dùng chung cho các module khác.
- book-store-socket-app: Module cho phần socket app.
- book-store-socket-plugin: Module cho phần socket plugin.
- book-store-theme: Module cho phần web theme, chứa các lớp modal, controller và các tập tin static và template cho view.
- book-store-web-plugin: Module cho phần web plugin, chứa các lớp modal, controller và các tập tin static và template cho view.
- export-java-docs.bat: Windows bat script để xuất bản javadocs.
- export-java-docs.sh: Bash script để xuất bản javadocs.
- export.bat: Windows bat script để xuất bản plugin đến ezyplatform trên máy local của bạn.
- export.sh: Bash script để xuất bản plugin đến ezyplatform trên máy local của bạn.
- local.properties: Chứa các thuộc tính cấu hình cho dự án.
- pom.xml: Chứa cấu hình của dự án, bạn có thể tham khảo tại đây để biết thêm thông tin về apache pom.
- README.md: Chứa tài liệu cơ bản cho dự án.
Khi khởi tạo dự án bạn sẽ cần lựa chọn các module cần thiết, ví dụ dự án của bạn không sử dụng socket thì bạn có thể bỏ qua
Ánh xạ
Khi được export thì các module tương ứng của dự án sẽ được đóng gói và chuyển các thư mục của ezyplatform như sau:
- book-store-admin-plugin -> ezyplatform/admin/plugins/book-store
- book-store-sdk -> ezyplatform/admin/plugins/book-store/lib, ezyplatform/socket/plugins/book-store/lib, ezyplatform/admin/apps/book-store/lib và ezyplatform/admin/web/book-store/lib
- book-store-socket-app -> ezyplatform/socket/apps/book-store
- book-store-socket-plugin -> ezyplatform/socket/plugins/book-store
- book-store-theme -> ezyplatform/admin/themes/book-store
- book-store-web-plugin -> ezyplatform/web/plugins/book-store
Cấu trúc một module
Cấu trúc của một module trong dự án plugin cũng tương tự như cấu trúc của modun maven:
- src/main/java: Chứa các mã nguồn java.
- src/main/resources: Chứa các tập tin sẽ được đưa vào classpath, bạn có thể tạo ra các tập tin cấu hình tại đây, tuy nhiên hãy hạn chế tối đa việc đưa các tập tin cấu hình mà hãy sử dụng tính năng
Settingsđể cho phép người dùng admin thay đổi được giá trị. - src/test/java: Chứa các mã nguồn kiểm thử
- src/test/resources: Chứa các tập tin sẽ được đưa vào classpath của môi trường kiểm thử, bạn có thể tạo ra các tập tin cấu hình cho việc cấu hình kiểm thử.
- src/test/resources/AllTests.tng.xml: Là tập tin cấu hình testng unit test, tập tin này bắt buộc phải có, nội dung của nó có thể như sau:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="AllTests"> <test name="All"> <packages> <package name="org.youngmonkeys.bookstore.admin.test" /> </packages> </test> </suite>
Để biết thêm thông tin chi tiết bạn có thể tham khảo tại liệu chính thức của testng tại đây.
- assembly.xml: Tập tin cấu hình cho apache-maven-assembly-plugin, tập tin này cũng bắt buộc phải có.
Tuy nhiên ezyplatform cũng bổ sung thêm một số tập tin và thư mục khác như sau:
- menus.properties: Là tập tin định nghĩa menu sẽ được hiển thị trên giao diện admin, tập tin này sẽ chỉ có hiệu lực với module
book-store-admin-plugin. - module.properties: Là tập tin chứa các định nghĩa và thông tin cho plugin, ngoại trừ
book-store-sdk, tất cả các module khác sẽ đều bắt buộc phải có tập tin này. - src/main/resources/static:
- Là thư mục chứa các tập tin tĩnh như html, css, javascript, media.
- Khi khởi động, ezyplatform sẽ tự động quét qua thư mục này và đăng ký uri cho các tập tin để người dùng có thể truy cập được, vậy nên bạn không nên đặt các tập tin có chứa thông tin nhạy cảm vào thư mục này.
- Thư mục này sẽ chỉ có hiệu lực với các module
book-store-admin-plugin,book-store-themevàbook-store-web-plugin. - Bạn nên phân chia thành các thư mục con cho các loại tập tin khác nhau, ví dụ thư mục
jscho các tập tin javascript, thư mụccsscho các tập tin css, thư mụcimagescho ảnh, ... - src/main/resources/templates:
- Thư mục chứa các tập tin template cho view sử dụng thymeleaf.
- Thư mục này sẽ chỉ có hiệu lực với các module
book-store-admin-plugin,book-store-themevàbook-store-web-plugin. - Đối với admin bạn sẽ cần thêm một thư mục con nữa có dạng
src/main/resources/templates/{tên dự án}, ví dụsrc/main/resources/templates/book-stoređể tránh bị trùng đường dẫn template với các plugin khác.
Mã nguồn của
book-store plugin bạn có thể tìm thấy tại Github.
Tiếp theo
Bạn có thể tạo các menu trên trang admin cho plugin của bạn.