2011-01-11 35 views
5

Cho đến nay tôi đã sử dụng tomcat và glassfish để phát triển một webapp thử nghiệm, không có maven. Và thông thường chu kỳ phát triển cày-triển khai rất đơn giản:Chu kỳ dev hiệu quả với Maven, Tomcat/Glassfish, Archetype?

  1. phát triển trong eclipse ide, với một thư mục WebContent, đó là thư mục webapp gốc mà có thư mục WEB-INF, web.xml, WEB-INF/lib, n tất cả. Các vị trí lớp được biên dịch trong nhật thực được đặt thành WEB-INF/classes.

  2. sau khi mã hóa, tôi có thể chỉ cần nhấp vào nút tải lại trong bảng điều khiển dành cho quản trị viên thủy tinh cho ứng dụng web cụ thể đó. Trong tomcat, tôi tin rằng nó tải lại cũng trong quản lý tomcat.

  3. tôi có thể truy cập vào các ứng dụng web trong trình duyệt

Bây giờ nếu tôi muốn tạo ra một ứng dụng web mới, mà sẽ sử dụng các chất liệu mới nhất của JSF, mùa xuân, JPA, hibernate, postgresql :

  1. tôi nên sử dụng loại nguyên mẫu nào trong quá trình tạo dự án?

  2. Tôi vẫn có thể sử dụng các bước phát triển trước đây của mình không? bởi vì tôi nghĩ rằng nó rất dễ dàng mà không cần phải đóng gói lại mọi thứ vào một tập tin chiến tranh, hoặc sao chép nó vào thư mục webapp của tomcat mọi lúc tôi muốn kiểm tra. Lưu các tập tin trong nhật thực, nhấn vào tải lại trong bảng điều khiển quản trị/quản lý tomcat, và tôi ngay lập tức có thể kiểm tra webapp cập nhật.

Hoặc bạn thường làm gì trong chu kỳ phát triển webapp? Vui lòng chia sẻ kinh nghiệm của bạn, =)

Cảm ơn bạn!

+0

BTW: Eclipse STS 2.5.2.RELEASE Changlog (từ hôm nay) đã đề cập một Tính năng mới mà họ gọi là "Nạp lại đại lý". Nó sẽ cập nhật ứng dụng trong Dev Server mà không cần khởi động lại nó. – Ralph

Trả lời

6

Phát triển Cycle với Maven and Friends

  1. Sử dụng Maven để lái xe chu kỳ mã build-test-triển khai phát hành của bạn.
  2. Bắt đầu với Maven Archetype phù hợp nhất với ứng dụng web của bạn. Điều này sẽ tạo ra toàn bộ cấu trúc thư mục cho bạn và sẽ thêm Jar depencies.
  3. Sử dụng máy chủ có trọng lượng nhẹ được nhúng như Jetty, điều này sẽ rất nhanh trên máy tính không có tài nguyên hút và có thể định cấu hình cao. Ngoài ra, bạn có thể đặt để tự động tải lại các thay đổi.
  4. Hầu hết dự án Maven là được cho là để được kiểm tra.Trong đó Maven sẽ sử dụng nó là surefire plug-in. Vì vậy, mọi công trình sẽ có giai đoạn thử nghiệm.
  5. Bạn có thể xác định nhiều cấu hình cho các môi trường khác nhau (kiểm tra, dev, prod, Win, Unix ..). Những hồ sơ này sẽ thay đổi hành vi của dự án để tương thích với môi trường.
  6. Sử dụng Cargo, một lần nữa một plugin Maven để triển khai các bản dựng của bạn trên máy chủ thử nghiệm hoặc sản xuất, có thể là Glassfish, Tomcat, Jetty hoặc bất kỳ máy chủ web oter nào.
  7. Sử dụng Liquibase with or without Maven :) để quản lý các thay đổi cơ sở dữ liệu giống như cách bạn quản lý thay đổi mã của mình.

Tôi đến từ dự án gần như tương tự như của bạn trong công ty trước đây. Phát triển với Maven làm cho mọi thứ trở nên suôn sẻ và sự thay đổi là đáng tin cậy.


Một tìm kiếm chút Google cho thấy rằng ai đó đã làm việc trên nguyên mẫu cho JSF and JPA with Spring


Chỉnh sửa # 1 - bổ sung thêm chi tiết

khả thi và Dễ sử dụng

  • Maven được sinh ra từ sự cần thiết để đơn giản hóa quá trình dev cho mã lớn và phân phối.
  • Maven là rất tốt được tích hợp với Eclipse - do đó không gây đau đớn.
  • Cầu cảng giữ các thư mục nguồn giám sát, do đó các thay đổi của bạn sẽ được triển khai gần như ngay lập tức.
  • Bạn có thể tùy chỉnh bản dựng để bỏ qua các bài kiểm tra, để không tạo phụ thuộc. Khi bạn chỉ chỉnh sửa một thành phần giao diện người dùng, Jetty sẽ âm thầm sao chép nó vào thư mục "đích".
  • Nếu bạn lo lắng về việc sao chép và triển khai lại. Bạn phải read THIS để xem mức độ hiệu quả của mọi việc được thực hiện, lưu ý rằng bạn không phải biên dịch-kiểm tra-triển khai mỗi khi bạn thay đổi JSP hoặc HTML.

Điều đó nói rằng, tôi muốn đề cập đến rằng Maven có thể là một học tập challanging. Đây là một cách hướng đối tượng của chu kỳ phát triển, để nói. Hầu hết chúng ta, những người được sử dụng để xây dựng kịch bản, có thể tìm thấy một chút tẻ nhạt/verbose ban đầu.

Tài

tôi sẽ đề nghị phải đi qua các nguồn sau

+0

Vì vậy, trong chu kỳ devel bạn đã đề cập, một mã trong IDE/editor, sử dụng maven để kiểm tra, xây dựng, gói, triển khai lại trên máy chủ, tôi có đúng không?Với cách suy nghĩ nguyên thủy và thiếu kinh nghiệm của tôi, khi dự án phát triển, với rất nhiều lớp, rất nhiều trường hợp thử nghiệm, tôi muốn bỏ qua biên dịch hoặc sao chép nhiều tệp vào thư mục webapp (i/o có thể khá chậm và sẽ addup với số lượng các chu kỳ), và có lẽ cũng muốn bỏ qua các bài kiểm tra khi tôi chỉ chỉnh sửa các lớp giao diện người dùng hoặc một cái gì đó đơn giản, vì vậy mà tôi không cần phải chạy lại tất cả các bài kiểm tra mọi lúc. – bertie

+0

@Albert Kam đã thêm chi tiết – Nishant

+0

Cảm ơn bạn rất nhiều vì đã giải thích chi tiết. Đối với tôi, nó yên tĩnh một vài điều mới bạn đã đề cập, như hàng hóa, hồ sơ, cầu cảng, liquibase. Chỉ cần triển khai thành công một ứng dụng web đơn giản tới tomcat 7 bằng cách sử dụng hàng hóa. Tôi sẽ phải thử nghiệm nhiều hơn về vòng đời hiệu quả bằng cách sử dụng tomcat. Im nghĩ đến cố gắng cầu cảng, nhưng im không chắc chắn, kể từ khi triển khai kế hoạch là tomcat 7, và im nghi ngờ nếu phát triển với cầu cảng và cuối cùng đặt nó vào tomcat 7 trong sản xuất là một ý tưởng tốt. Cảm ơn một lần nữa! =) – bertie

0

cho q2:

Bạn vẫn có thể chạy/app debug với tomcat từ bên trong IDE (Eclipse) ngay cả khi bạn thay đổi cấu trúc thư mục. (Như cấu trúc thư mục maven thay vì cấu trúc thư mục web động thực của)

Project properties - > 
project facets - > 
Dynamic Web Module -> 
Click the appearing "further configuration available" 
and set your content dir and context root. 

Bạn không cần phải đóng gói mọi lúc bạn muốn chạy/debug nó.

Một lựa chọn khác là sử dụng Jetty

Và tôi chắc chắn có thêm nhiều lựa chọn khác sẽ cho là tốt.

Các vấn đề liên quan