2011-08-21 66 views
15

Khi tôi bắt đầu dự án, tôi không biết Maven .. Tôi nhận ra tầm quan trọng của dự án sau khi dự án đã phát triển đến một kích thước khá lớn. Vào thời điểm đó tôi đã thực sự phát triển nhanh chóng, do đó tôi không thực sự muốn phá vỡ dòng chảy. Vì vậy, tôi trì hoãn việc cắm maven vào dự án. Bây giờ tôi có một chút không gian thở, vì vậy tôi muốn thêm maven vào dự án.Chuyển đổi dự án hiện tại thành dự án maven

Đề xuất của bạn là gì hoặc tôi có nên làm điều đó không? Tôi có Spring, Struts, Log4J, Hibernate và JAX-RS trong dự án.

Trả lời

22

Ok .. Tôi cuối cùng đã chuyển dự án thành maven. Đây là những gì tôi đã làm.

  1. Tải xuống plugin eclipse m2e. Đó là người bạn tốt nhất của bạn!
  2. Tạo một dự án xương quạ. src/main/java là nơi mã của bạn nên cư trú. Di chuyển mã của bạn vào thư mục src/main/java. Bạn có thể tiếp tục sử dụng cấu trúc gói hiện có của mình. Không cần phải thay đổi điều đó. Ngay cả thay đổi mã là không cần thiết vì maven đặt src/main/java là thư mục nguồn, vì vậy bạn không cần phải thay đổi các khai báo gói.
  3. Chuyển các bài kiểm tra đơn vị của bạn sang src/test/java. Một lần nữa, không cần phải thay đổi các khai báo gói.
  4. KHÔNG sao chép thư viện của bạn & lọ.
  5. Kiểm tra tất cả các lỗi biên dịch do các lọ bị thiếu.
  6. Thêm phụ thuộc của mỗi lọ bị thiếu vào tệp pom.xml. Bạn có thể nhận được sự phụ thuộc từ các trang web lưu trữ maven.Nếu bạn đã lập chỉ mục các kho lưu trữ trong plugin m2e, thì bạn có thể chỉ cần tìm kiếm sự phụ thuộc trong plugin và thêm nó từ ngay tại đó.

Trong trường hợp bạn có dự án nhiều mô-đun, hãy chuyển đổi các mô đun khác thành maven như mô tả ở trên và thêm mô đun phụ thuộc vào pom.xml của mô-đun kia.

Nếu bạn có các lọ tùy chỉnh không dựa trên maven, bạn có thể thêm chúng vào thư mục src/main/resources và sau đó thêm các lọ để tạo đường dẫn.

Có bạn đi! Dễ như ăn bánh!

Tôi có thiết lập dự án xương cho Spring + Maven + EC2. Bạn có thể sử dụng nó để tạo, cấu hình maven và tự động hóa quá trình triển khai.

https://github.com/varunachar/maven-release

+0

Varun: Tôi có một yêu cầu để thay đổi dự án mùa xuân thoát ra để dự án maven vì vậy bạn có thể mô tả công phu hơn. –

+0

Bạn cần trợ giúp về phần nào? Sử dụng công cụ Spring STS để tạo một dự án maven xương hoặc chỉ sử dụng nguyên mẫu maven đơn giản nhất để tạo bộ xương. Sau đó bạn có thể chuyển mã tới dự án mới đó bằng các bước được đề cập ở trên –

4

Tôi phải đối mặt với chính xác tình huống tương tự như bạn. Thêm vào đó, tôi đã di chuyển từ JavaEE5 sang JavaEE6. Tôi đã làm những bước di chuyển theo bước:

  • Tạo một dự án maven
  • Tạo một số module cho dự án maven tùy thuộc vào cấu trúc cũ
  • lớp Chuyển từ dự án cũ để maven dự án và bổ sung các lớp này như một cái bình cho dự án cũ

Bằng cách này, bạn có một chuyển đổi suôn sẻ từ cấu trúc hiện tại của bạn thành Maven. Vào cuối ngày, bạn có lợi nhiều hơn và nhiều hơn nữa từ các cấu trúc maven của bạn và luôn luôn có thể phát triển hơn nữa dự án của bạn.

+0

"Đã tạo nhiều mô-đun cho dự án maven tùy thuộc vào cấu trúc cũ" .. Bạn không tạo bản sao của cấu trúc dự án cũ? Hoặc bạn đã làm điều này để cải thiện cấu trúc dự án? –

+0

Đó là điểm: để cải thiện cấu trúc dự án. Không dễ dàng chút nào (có thể bạn cũng sẽ phải đối mặt với các phụ thuộc _cyclic), nhưng nó thực sự dẫn đến một cấu trúc tốt hơn. – Thor

+0

Từ kinh nghiệm của tôi, chỉ làm một việc tại một thời điểm. Tạo bản sao trước. Một khi bạn dự án là trong maven bạn có thể nghĩ đến việc biến nó thành nhiều mô-đun sau đó, đặc biệt là cho một dự án lớn. – gigadot

2

Khó khăn sẽ tùy thuộc vào số lượng bạn biết về con quạ và dự án của bạn lớn đến mức nào. Nó luôn luôn dễ dàng hơn để chơi với một dự án nhỏ đầu tiên và xem nó như thế nào. Nó không quan trọng những gì thư viện nó phụ thuộc vào miễn là họ đang ở trong kho trung tâm maven hoặc ở một vị trí trực tuyến được biết đến. Nếu các thư viện bạn đang kiện không tồn tại trên bất kỳ kho lưu trữ maven trực tuyến nào thì bạn sẽ cần phải triển khai các tệp jar của bạn cục bộ hoặc địa điểm trực tuyến của riêng bạn. Nếu bạn không thể tìm thấy một dịch vụ lưu trữ tốt, bạn thậm chí có thể đặt nó trên Github. Đây là trick.

Có một số bài viết thú vị về việc chuyển đổi dự án kiến ​​thành dự án maven mà bạn nên đọc. Đây là lần truy cập đầu tiên trên tìm kiếm google http://www.sonatype.com/people/2009/04/how-to-convert-from-ant-to-maven-in-5-minutes/

Nhận xét duy nhất của tôi là tận dụng tối đa IDE khi bạn chuyển đổi dự án của mình. Ví dụ: sử dụng các tính năng tái cấu trúc trong IDE của bạn khi bạn di chuyển mã của mình. Đối với tôi, tôi thấy rằng sự hỗ trợ của maven trong Netbeans là cực kỳ hữu ích và dễ sử dụng.

0

Trong nhật thực, bạn có thể chuyển đổi dự án thú vị để maven đơn giản bằng cách m2e-eclipse plugin.

nhưng trong intllje, bạn có thể tạo dự án maven mới và sau đó chỉ cần chuyển lớp sang src/java/packagename và cấu hình vào thư mục tài nguyên. thì bạn có thể thêm mọi phụ thuộc mà dự án của bạn cần từ bản ghi lỗi biên dịch.

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