Tìm ra các phụ thuộc gói thực sự không khó. Bạn hiếm khi làm điều đó anyway. Có lẽ một lần trong quá trình thiết lập dự án và một vài lần nữa trong quá trình nâng cấp. Với maven, cuối cùng bạn sẽ sửa chữa các phụ thuộc không khớp, các poms được viết xấu và thực hiện các loại trừ gói.
Không khó lắm đâu ... cho các dự án đồ chơi. Nhưng các dự án tôi làm có rất nhiều, rất nhiều trong số đó, và tôi rất vui khi có được chúng một cách liên tục, để có một kế hoạch đặt tên chuẩn cho chúng. Quản lý tất cả điều này bằng tay sẽ là một cơn ác mộng.
Và vâng, đôi khi bạn phải làm việc trên sự hội tụ của các phụ thuộc. Nhưng hãy nghĩ về nó hai lần, đây không phải là vốn có của Maven, đây là vốn có cho bất kỳ hệ thống nào sử dụng các phụ thuộc (và tôi đang nói về các phụ thuộc Java nói chung ở đây).
Vì vậy, với Ant, bạn phải thực hiện cùng một công việc ngoại trừ việc bạn phải làm mọi thứ theo cách thủ công: lấy một số phiên bản của dự án A và các phụ thuộc của nó, lấy một số phiên bản của dự án B và các phụ thuộc của nó, tự tìm ra phiên bản chính xác mà chúng sử dụng, kiểm tra rằng họ không chồng chéo, kiểm tra rằng họ không tương thích, vv Chào mừng đến địa ngục.
Mặt khác, Maven hỗ trợ quản lý phụ thuộc và sẽ truy xuất chúng liên tục cho tôi và cung cấp cho tôi công cụ tôi cần để quản lý sự phức tạp vốn có của quản lý phụ thuộc : Tôi có thể phân tích cây phụ thuộc, kiểm soát các phiên bản được sử dụng trong phụ thuộc bắc cầu, loại trừ một số chúng nếu được yêu cầu, điều khiển sự hội tụ trên các mô-đun, v.v. Không có phép thuật. Nhưng ít nhất bạn có hỗ trợ.
Và đừng quên rằng quản lý phụ thuộc chỉ là một phần nhỏ trong những gì Maven cung cấp, còn nhiều hơn thế (thậm chí không đề cập đến các công cụ khác tích hợp độc đáo với Maven, ví dụ Sonar ).
Chu kỳ FIX-COMPILE-DEPLOY-DEBUG chậm, giết chết năng suất. Đây là chuôi chính của tôi. Bạn thực hiện một thay đổi, bạn phải đợi maven build khởi động và chờ nó triển khai. Không có triển khai nóng nào.
Đầu tiên, tại sao bạn sử dụng Maven như thế này? Tôi không. Tôi sử dụng IDE của mình để viết các bài kiểm tra, viết mã cho đến khi chúng vượt qua, tái cấu trúc, triển khai, triển khai nóng và chạy bản dựng Maven cục bộ khi tôi hoàn thành, trước khi cam kết, để đảm bảo tôi sẽ không phá vỡ bản dựng liên tục.
Thứ hai, tôi không chắc việc sử dụng Ant sẽ giúp mọi thứ tốt hơn nhiều. Và theo kinh nghiệm của tôi, các bản dựng Maven mô-đun sử dụng các phụ thuộc nhị phân cho tôi thời gian xây dựng nhanh hơn các bản dựng Ant nguyên khối điển hình. Dù sao, hãy xem Maven Shell để sẵn sàng (tái) sử dụng môi trường Maven (điều này thật tuyệt vời).
Vì vậy, cuối cùng, và tôi rất tiếc phải nói như vậy, thực sự không phải Maven đang giết chết năng suất của bạn, mà là bạn đang lạm dụng các công cụ của mình. Và nếu bạn không hài lòng với nó, thì, tôi có thể nói gì, đừng sử dụng nó. Cá nhân tôi đang sử dụng Maven từ năm 2003 và tôi không bao giờ nhìn lại.