Đừng bận tâm với các nguyên mẫu cho đến sau này
Đối với tất cả các thông tin bạn cần biết về Maven, hãy đọc một số sách trên trang web của họ . Tuy nhiên, đó là một chút quá mức cho những gì bạn đang cố gắng đạt được.
Để bắt đầu, hãy bố trí ứng dụng web của bạn theo cấu trúc Maven tiêu chuẩn cho các ứng dụng web như sau. (Bạn không cần một kiểu mẫu Maven cho việc này, nó chỉ là một loạt các thư mục tiêu chuẩn, bạn có thể thực hiện trong 2 phút).
src/main/java
- chứa mã Java sản xuất của bạn
src/main/resources
- chứa tài nguyên đường dẫn sản xuất của bạn (ví dụ: bối cảnh mùa xuân)
src/main/webapp
- (chứa WEB-INF / web.xml nhưng không có thư mục lib)
src/test/java
- chứa mã Java thử nghiệm của bạn
src/test/resources
- chứa tài nguyên kiểm tra của bạn (ví dụ: nguồn cấp dữ liệu XML để kiểm tra dịch vụ web, v.v.)
Plugin cơ bản
Bước tiếp theo là chọn một loạt các plugin. Các nghi phạm thông thường là, rõ ràng là những người hỗ trợ sạch, biên dịch và tài nguyên (là một phần của Maven nhưng bạn có thể định cấu hình chúng). Sau đó, bạn sẽ có trình kiểm tra đơn vị chắc chắn và plugin WAR. Thế là đủ để tạo ra một ứng dụng web rất cơ bản.
Các plugin nâng cao hơn
Bước tiếp theo là giới thiệu các plugin Findbugs và PMD sẽ cung cấp cho mã của bạn một cách thấu đáo và báo cáo các vấn đề tiềm ẩn khác nhau. Bạn có thể sẽ muốn có JXR cho mã nguồn tham chiếu chéo, danh sách thẻ để theo dõi các thẻ TODO và REFACTOR, v.v. Trên hết...
... Sử dụng plugin Jetty cho các ứng dụng web
Sử dụng plugin Jetty để chạy tệp WAR trong IDE của bạn để dễ dàng gỡ lỗi. Nó nhanh và nhỏ và hoàn thành công việc thực sự nhanh chóng. Có Jetty là một phần của bản dựng Maven của bạn giúp dự án của bạn có thể được thử nghiệm trên bất kỳ máy nào mà không cần IDE với một số bảng điều khiển Máy chủ phức tạp được định cấu hình. Nó cũng cho phép bạn khai báo các phụ thuộc vào các tệp WAR khác, điều đó có nghĩa là bạn có thể tạo ra một môi trường làm việc hoàn chỉnh bao gồm nhiều ứng dụng web với một lệnh duy nhất "mvn clean jetty: run". Điều này hoạt động ở bất cứ đâu và thậm chí bạn có thể cung cấp cấu hình JNDI thử nghiệm để các nguồn dữ liệu được tiêm vào Spring của bạn đều được cấu hình bên ngoài. Nếu bạn kết hợp cách tiếp cận Cầu tàu này với trang HTML trình diễn chuẩn (src/test/resources/demo.html
) bạn sẽ tiết kiệm được hàng giờ nhà phát triển đang cố gắng để có được môi trường làm việc tại địa phương. Một lệnh và bạn đã hoàn tất. Đơn giản.
Cấu hình IDE của bạn
Với Maven thật dễ dàng vì tất cả các ông lớn đều ủng hộ nó: Eclipse, Netbeans và dĩ nhiên là Intellij yêu thích của tôi. Chỉ cần trỏ IDE của bạn vào tệp pom.xml và nó sẽ đảm nhiệm việc giảm tất cả các phụ thuộc được liệt kê cho bạn. Không còn mucking về với WEB-INF/lib
. Trong Eclipse, bạn thường sử dụng Tệp | Nhập ... | Dự án Maven | pom.xml.
Tích hợp với Hudson
Đầu tiên cài đặt Hudson (nó chỉ là một ứng dụng web) và sau đó nhắm mục tiêu hệ thống kiểm soát phiên bản của bạn để nó kiểm tra phiên bản phù hợp. Bước cuối cùng của bạn là cấu hình nó để nó sử dụng Maven để thực hiện quá trình xây dựng. Rõ ràng Maven sẽ phải được cài đặt trên máy dựng của bạn (giả sử nó khác với máy phát triển của bạn).
Hudson chỉ chụp ảnh nhanh
Có Hudson thực hiện các bản dựng ảnh chụp nhanh và để các bản dựng phát hành theo một quy trình thủ công. Sử dụng phương pháp đó sẽ có nghĩa là các nhà phát triển có thể chia sẻ mã của họ dưới bản sửa đổi ảnh chụp nhanh (ví dụ 1.0.0-SNAPSHOT) và chỉ khi nó có thể vượt qua bản dựng thì nó mới được chia sẻ vào kho lưu trữ nhóm. Thông thường, Hudson sẽ thực hiện "triển khai sạch mvn" mặc dù bao gồm cả mục tiêu "trang web" cũng có thể là một phần trong quy trình của bạn vì nó sẽ tạo một trang web dự án nhỏ cho mỗi bản dựng. Các nhà phát triển trong nhóm sẽ tự động xây dựng bản chụp nhanh được cập nhật vào dự án của họ thông qua quy trình quản lý phụ thuộc Maven.
Hudson cung cấp rất nhiều plugin có thể hỗ trợ tất cả các cách đo. Yêu thích cá nhân của tôi là theo dõi số lượng thử nghiệm vượt qua cho mỗi dự án theo thời gian. Thật tuyệt khi cho quản lý thấy rằng số lượng kiểm tra đơn vị và phạm vi bảo hiểm của bạn ngày càng tăng.
Hướng dẫn thiết lập chung
Chia kho của bạn thành ít nhất cấu trúc sau:
- phát hành nhóm - Tất cả các tạo tác sản xuất được phát hành của bạn ở đây
- team-snapshot - Tất cả các tạo phẩm phát triển ảnh chụp nhanh của bạn ở đây
- phát hành bên thứ ba - Tất cả các thư viện bên thứ ba hỗ trợ của bạn đều có ở đây (ví dụ: Spring, Hibernate, v.v.)
Tài khoản người dùng của nhà phát triển sẽ không thể ghi vào kho lưu trữ của nhóm, ảnh chụp nhanh hoặc phát hành. Điều này sẽ cho phép nhà phát triển bỏ qua Hudson nếu họ đang vội và sẽ nhanh chóng trở thành chuẩn mực.
Đảm bảo bạn luôn tải xuống nguồn, chữ ký javadocs và SHA cho tất cả các bên thứ ba của bạn. Jarvana là một nhà thám hiểm kho lưu trữ tuyệt vời cho tất cả những người khó tìm.
Cân nhắc cài đặt trình quản lý kho lưu trữ như Nexus hoặc Artifactory để cho phép kiểm soát tốt hơn kho lưu trữ đang phát triển của bạn.