Trong quá trình làm việc với các dự án Java, mặc dù là dự án cá nhân nhưng đã không ít lần tôi phải loay hoay để add đi add lại thư viện dùng trong dự án của mình. Đôi khi chuyển "nhà" cho các thư viện, các plugin hay các dự án khác đã xảy ra những lỗi không đồng bộ đường dẫn thư viện....và phải add lại từng thư viện cần thiết, đôi khi phải quản lý hàng trăm thư viện. Rất tốn thời gian.

Còn làm việc với nhóm thì lại là 1 điều nguy hiểm khi ngày ngày phải sửa conflict khi các thành viên trong nhóm commit source code lên....chỉ vì lỗi thư viện....

Tôi đã ở trong những trường hợp như vậy và rất vất vả để sửa hết đống lỗi đó, đôi khi nó còn ảnh hưởng rất nhiều tới file cấu hình dự án khi build.

Để thuận tiện cho việc quản lý thư viện cũng như việc cộng tác tốt giữa các thành viên trong nhóm dự án mà không cần phải quan tâm tới đường dẫn thư viện hay bên cộng sự của mình đã add những thư viện nào vào dự án để sử dụng. Mọi mối quan tâm đó chúng ta sẽ phó thác cho Ant Library - 1 trình quản lý thư viện tích hợp trong Netbeans mọi phiên bản, và thời gian lãng phí cho việc tự quản lý thư viện chúng ta sẽ tập trung cho việc code, tìm giải pháp cho dự án của mình sao cho tốt hơn, mạnh mẽ hơn.

Ant Library Manager.

Ant Library Manager được tích hợp sẵn bên trong Netbeans ở mọi phiên bản (có thể phiên bản < 7.1 tên gọi khác là Libraries Manager, hiện tại phiên bản Netbeans sử dụng trong bài viết này là 7.3). Ant được xây dựng và phát triển bởi Apache, bạn có thể tham khảo các thông tin về Ant tại đây. Tuy nhiên, trong bài viết này tôi không đi quá sâu vào việc sử dụng bộ thư viện Ant của Apache mà chỉ đơn thuần đề cập tới việc quản lý thư viện làm sao cho hiệu quả trong Netbeans. (Ant sẽ được nói tới chi tiết hơn trong các bài viết về Maven).

Về ưu điểm của Ant Library Manager, nó quản lý tự và nhận dạng tự động các thư viện có trên máy tính của bạn và máy tính khác dựa trên sự phân tích tên thư viện chứ không phải phân tích đường dẫn. Do đó, nó giúp ta hoàn toàn yên tâm khi dự án được phát triển bởi 1 developer khác mà không lo ngại tới vấn đề quản lý thư viện. Như vậy nghĩa là sao? Tôi cũng mong giải thích trực tiếp thật chi tiết để bạn hình dung ra được việc quản lý này như thế nào, nhưng tôi sẽ cố gắng trình bày những kỹ thuật đó cho bạn trong bài viết này.

Về nhược điểm của Ant Library Manager, thư viện trên máy tính của bạn và máy tính khác (cụ thể là máy sẽ đọc cái dự án của bạn) phải đặt tên giống nhau.

Ví dụ điển hình cho việc sử dụng Ant Library Manager.

Đó là 1 buổi sáng, ngày đầu tiên đi làm của tôi, tôi được điều vào team BackEnd để phát triển hệ thống sử dụng ngôn ngữ lập trình Java. Tôi khá ngượng ngạo khi tiếp nhận dự án xử lý thanh toán qua SMS (tức là qua đầu số của tổng đài 8xxx). Tôi phải mất nửa ngày làm việc chỉ để lên google search thư viện và add vào làm sao cho chuẩn để không bị dính mấy cái icon đỏ lòm của Netbeans kia. Khi kiếm đầy đủ và đúng các thư viện mà dự án yêu cầu thì tôi chọn add thư viện bằng file Jar/Folder trong Netbeans. Cụ thể như sau:

(Click để phóng to)

Tôi đã làm như vậy và chọn lấy 1 file thư viện .jar để add vào dự án. OK, dự án chạy và không báo lỗi nữa.

Khoảng 1h sau đó, tôi chuyển dự án cho 1 anh bạn trong nhóm và .... ôi thôi bao nhiêu công sức của tôi từ sáng tới giờ coi như công cốc hết, dự án bị lỗi thư viện và anh bạn trong nhóm phải add lại từ đầu những thư viện cần cho dự án. Sau những rắc rối trong ngày đầu đi làm, tôi được chỉ dạy và tìm hiểu cách sử dụng Ant Library Manager. Khá hay!

...

Thay vì add thư viện với cách cũ của tôi, thực sự, tôi cần phải có 1 cái gì đó để điều phối và chuyển hướng đường dẫn các thư viện từ máy này sang máy kia mà không gặp rắc rối gì. Tôi sử dụng Ant Library Manager để giúp tôi làm việc đó.

Tôi bắt đầu tạo những thư mục có tên dễ gọi, dễ hiểu, dễ quản lý, dễ đồng bộ và quan trọng là phải giống tên với các thư mục thư viện khác trong máy tính của các thành viên trong nhóm của tôi. Tất nhiên họ đã đặt ra quy tắc và làm trước đó rồi. Giờ đến lượt tôi.

Sau khi tạo các thư mục có tên giống với tên thư mục trên máy tính của đồng nghiệp khác. Tôi bắt đầu ném những file jar, file zip, javadoc của từng thư viện vào từng thư mục đã được đặt tên.

Những bước đó lần lượt được thực hiện như sau:
- Tôi tạo 1 thư mục có tên là eway.apache.axis trong thư mục nào đó mà tôi thích.

(Click để phóng to)


- Tiếp tục tôi ném hết các file jar, file zip hay các file javadoc khác vào thư mục này sau khi đã tải bộ thư viện apache axis ở trên mạng về.

(Click để phóng to)


- Sau khi hoàn tất xong công việc này, tôi vào Netbeans và khởi động ngay trình Ant Library Manager để thiết lập bộ thư viện của tôi.
(Click để phóng to)
- Ngay sau đó, 1 hộp thoại hiện lên, tôi dễ dàng nhận thấy có rất nhiều thư viện quen thuộc như Spring, Absolute Layout (trong Swing), Hibernate,....Không chần chừ, tôi nghĩ ngay tới việc nhấn vào nút New Library để tạo thư viện mới của tôi.

(Click để phóng to)
- Tiếp đến, tôi nhập tên thư viện vào ô Library Name với giá trị eway.apache.axis, và chọn Library Type là Class Libraries.

(Click để phóng to)

- Cuối cùng tôi thêm câc file tương ứng vào các thẻ Classpath (thêm vào các file thư viện jar, loại trừ các file có tên đi sau là ....source, src,javadoc...những file này sẽ được thêm ở các tab SourceJavadoc tương ứng). Do thư viện này không có source nên tab Source tôi để trống (đợi update sau T_T).
(Click để phóng to)
(Click để phóng to)

OK, xong, bây giờ dự án của tôi chuyển sang các máy tính khác của đồng nghiệp đã chạy "ngon lành cành đào" và không gặp rắc rối gì về code do Ant Library Manager có cơ chế quản lý thư viện rất hay và mạnh mẽ. Sau này tôi dùng thư viện nào thì chỉ việc add thư viện đó vào mà không cần quan tâm bên trong thư viện đó còn có các thư viện con khác hay không. Tổ chức 1 lần nhưng dùng lại được nhiều lần. Hiệu quả rất cao trong công việc.

Ngay sau bài viết này, bạn hãy thử quản lý thư viện bằng cách này xem và hãy đánh giá độ hiệu quả của nó nhé!

2 nhận xét:

 

code4lifevn team

Thanh niên nghiêm túc :)

Name: Manh Do

Age: years old

Job: Senior Java and Mobile Developer

Country: VietNam

Name: Hung Nguyen

Age: years old

Job: Android Developer

Country: VietNam

Name: Trung PH

Age: years old

Job: Senior iOS and Android Developer

Country: VietNam

Name: Điệp NT

Age: years old

Job: Senior .Net and Android Developer

Country: VietNam