Có phải Ant vẫn còn trong bản dựng chính thống của dòng máy dành cho Java không?


14

Chúng tôi đã dần thay thế các tệp lệnh bó (windows .bat), đơn giản là làm xáo trộn các lớp được biên dịch trong IDE của nhà phát triển, với các bản dựng Ant toàn diện hơn (ví dụ: lấy từ CVS, biên dịch sạch, jar, lưu trữ, email, v.v.)

Tôi đã dành rất nhiều thời gian để tìm hiểu (và gỡ lỗi các vấn đề) với Ant, vì vậy tôi cảm thấy thoải mái nhất khi sử dụng nó cho các nhiệm vụ này. Nhưng tôi tự hỏi liệu Ant vẫn còn được sử dụng rộng rãi như khi tôi mới bắt đầu học, hay liệu "thế giới đã chuyển sang" sang một thứ gì đó mới hơn (và có thể là bóng bẩy). (Tôi đã bắt đầu thấy nhiều công cụ xây dựng Maven được phân phối, ví dụ như tôi chưa từng sử dụng.)

Nhập khẩu thực tế của câu hỏi này, là liệu tôi có thúc đẩy các nhà phát triển mới học Ant hay không, liệu họ có nên học cái gì khác để xây dựng không?

Tôi không bao giờ đi đầu trong các xu hướng, vì vậy sẽ rất tuyệt khi nghe từ các nhà phát triển Java khác, những gì họ nghĩ là công cụ xây dựng tốt nhất và những gì họ nghĩ các nhà phát triển mới nên học hỏi.


Đọc tất cả các câu trả lời dưới đây và tất cả chúng đều tuyệt vời! Cảm ơn những hiểu biết về những cải tiến mà Maven cung cấp so với Ant. Tôi sẽ xem xét Maven.
Sam Goldberg

Đó là rất ít dự án đủ đơn giản để không yêu cầu hàng tấn kịch bản cho kiến. Maven xử lý rất nhiều những điều này một cách tiêu chuẩn.

Ant về cơ bản là một tập lệnh shell trong XML (và sử dụng các lệnh Ant thay vì các lệnh shell).
dùng253751

Kiến là một sự lãng phí thời gian đáng kinh ngạc. Ngay cả khi maven là khủng khiếp, nó là một lựa chọn thông minh hơn. Ant không có cách nào để được tích hợp vào IDE và các dự án Java là một mớ hỗn độn rất lớn - bạn dành 30% thời gian của mình chỉ để chuyển từ tệp này sang tệp khác.
bryan săn

@bryanhunt: chúng tôi đã kết thúc việc sử dụng Maven cho tất cả các dự án mới. Tuy nhiên, tôi chưa tìm thấy một cách hay cho Maven để tạo gói triển khai cho các ứng dụng Java. (Sẽ tốt khi sao chép phụ thuộc, tải lên jar.) Hầu hết các bài đăng tôi đọc đều trả lời cách thực hiện, hãy nói sử dụng plugin Ant. Vì vậy, tôi thấy tôi đang sử dụng Ant để chuẩn bị đầu ra cuối cùng từ Maven. Và có vẻ như cách làm trong Ant dễ dàng hơn là sử dụng plugin Maven hội.
Sam Goldberg

Câu trả lời:


23

Tôi đồng ý với những người khác ở đây rằng Maven dường như đã tiếp quản hầu hết các dự án quan trọng mà tôi đã xem xét.

Mặc dù Ant rất linh hoạt, tệp xây dựng không được chuẩn hóa, do đó, khi bạn chuyển sang dự án hoặc công ty mới, các mục tiêu được đặt tên khác nhau, tệp được cấu trúc khác nhau, các phụ thuộc giữa các mục tiêu có thể hoặc không được thiết lập, v.v.

Với Maven, bạn cũng có được lợi ích khi không phải mang các phụ thuộc nhị phân (tôi đang nói về bình) trong hệ thống SCM của bạn. Rất nhiều công cụ Java tuyệt vời khác biết cách đọc tệp Maven POM (lợi ích của tiêu chuẩn hóa), vì vậy các công cụ như IDE có thể thiết lập dự án Maven rất nhanh và các công cụ xây dựng như Jenkins có thể dễ dàng thực hiện các bản dựng Maven.


13
Tôi cũng nên nói thêm rằng việc sử dụng Maven làm cho các dự án của chúng tôi trở thành IDE bất khả tri, và nếu bạn đã từng ở trong một cửa hàng có các cuộc chiến IDE, bạn có thể đánh giá cao việc loại bỏ trận chiến tôn giáo này!
RonU

11

Tôi đã làm việc với Ant và với Maven. Theo kinh nghiệm của tôi, Maven có lợi thế rất lớn so với Ant.

  • Tất cả các dự án tôi đã xem 2 hoặc 3 năm qua dường như đang sử dụng maven. Khoảng 3 năm trước, điều này khiến tôi băn khoăn vì các phiên bản maven được sử dụng sau đó (2.0.s Something) dường như khá không đáng tin cậy và có lỗi. Tại một số điểm mặc dù (2.1 hoặc 2.2 tôi không nhớ lại) maven trở nên đáng tin cậy và sau một thời gian dành cho nó, tôi đã thay đổi suy nghĩ của mình để đối diện. Bây giờ, tôi sẽ ngạc nhiên hơn khi thấy ai đó thích kiến ​​hơn maven.

Trên một ghi chú ít tích cực hơn về maven, trải nghiệm của tôi với tài liệu của nó không quá tuyệt vời cho đến nay. Tôi nghĩ rằng tôi đã thấy một sản phẩm có tài liệu kém hơn so với maven nhưng tôi không thể nhớ đó là sản phẩm nào (một số thư viện CSV cổ xưa).


2
Dunno, tôi thấy Maven Reference khá phong nha. Nó không hoàn hảo, và thực sự có những góc tối không có giấy tờ, nhưng IMHO vẫn tốt hơn đáng kể so với mức trung bình.
Péter Török

@ PéterTörök phải Maven Tham khảo là cách sơ cứu của tôi. Bằng cách nào đó mặc dù hầu hết những thứ khiến tôi lo lắng sẽ kết thúc ở những góc tối không có giấy tờ này . Nói chính xác tôi thấy những góc này "tối" hơn "không có giấy tờ" - ý tôi là tôi cảm thấy kiến ​​thức ở đó nhưng tôi không giải mã được. Tôi không biết có lẽ tôi không may mắn. Hoặc có thể là ngu ngốc. Hoặc có lẽ những kẻ Maven chỉ thiếu một nhà văn công nghệ đàng hoàng trong băng đảng của họ
gnat

1
Tại sao, bạn đã bao giờ thấy một dự án nguồn mở một nhà văn công nghệ đàng hoàng chưa? ;-)
Péter Török

@ PéterTörök rất đúng! :) Sự xa xỉ của các dự án OSS nổi tiếng là có rất nhiều chuyên gia xung quanh đã "thay thế" nhà văn doc. Đối với tôi đó là trường hợp của Maven - luôn có một số đạo sư xung quanh tôi có thể hỏi về những điều khó khăn
gnat

3

Chúng tôi đã sử dụng Maven trong vài năm. Nó hỗ trợ tập lệnh Ant (giống như Ant hỗ trợ BeanShell), vì vậy kiến ​​thức về Ant của bạn vẫn có thể hữu ích. Maven mạnh hơn nhiều, nhưng nó có một số yêu cầu về cơ sở hạ tầng bổ sung (bạn sẽ muốn máy chủ Artifactory hoặc Nexus lưu trữ các bản dựng của mình nếu bạn chia sẻ các thành phần giữa nhiều dự án). Nó cũng khá khác biệt so với Ant, vì vậy bạn không thể tận dụng nhiều kiến ​​thức hiện có của mình.


1

Tôi nghĩ rằng chính Ant đã chết trong nước; phải chỉ định tất cả các phụ thuộc đường dẫn của bạn theo cách thủ công (tùy thuộc vào thiết lập của bạn) quá xa thủ công và dễ bị lỗi. Nếu Ant được sử dụng cùng với một công cụ quản lý phụ thuộc, chẳng hạn như Ivy, thì nó vẫn giữ được sức mạnh của nó và loại bỏ nhu cầu quản lý thủ công các phụ thuộc của bạn.

Vấn đề khác với Ant khi so sánh với Maven là thiếu tiêu chuẩn hóa, đã được đề cập trong các câu trả lời khác. Khi chuyển từ dự án này sang dự án hoặc công việc này sang công việc khác, một trong những điều khó chịu nhất mà tôi thấy là phải học tiêu chuẩn mới cho các tệp Ant khác nhau. Mục đích quy ước về cấu hình của Maven có nghĩa là hai dự án khác nhau sẽ có cấu trúc rất giống nhau, giúp việc chuyển đổi giữa chúng dễ dàng hơn nhiều so với Ant.

Về việc Ant có còn là chủ đạo hay không, nó sẽ phụ thuộc vào môi trường phát triển mà bạn đang làm việc. Nếu dự án ở một công ty nhỏ hoặc mới khởi nghiệp, tôi sẽ tưởng tượng Maven sẽ là lựa chọn tự nhiên và có thể mất thời gian đầu tư vào cơ sở hạ tầng, như Artifactory. Tuy nhiên, các công ty lớn sẽ đầu tư nhiều năm và rất nhiều tiền vào cơ sở hạ tầng Ant (cấu hình, tệp xây dựng toàn cầu, v.v.), điều đó có nghĩa là họ sẽ ít quan tâm đến việc di chuyển khỏi một công nghệ mà họ đã đầu tư rất nhiều tiền.


0

Maven đã gia tăng trong nhiều năm, và bây giờ tôi cần học nó. Mọi thứ sẽ luôn thay đổi, và để biết rằng Ant đang mất vị trí của mình không phải là điều xấu.

Maven có thể chỉ là người khởi nghiệp trong một thời gian ngắn, nhưng nếu nó làm cho công việc của chúng ta dễ dàng hơn, thì đáng để đầu tư thời gian để học hỏi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.