Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 32 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
32
Dung lượng
2,26 MB
Nội dung
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG MÔN: VẬN HÀNH VÀ BẢO TRÌ PHẦN MỀM Đề tài: Build management - Maven Giảng viên: Quách Xuân Trưởng Nhóm sinh viên thực Nguyễn Trung Nguyên (leader) Vũ Ngọc Đức Anh Nguyễn Văn Công KTPM K18B Thái Nguyên Mục lục Chương 1: Tổng quan 1.1 Tầm quan trọng .4 1.2 lý chọn đề tài 1.3 Phạm vi chủ đề .5 Chương 2: Cơ sở lý thuyết 2.1 xây dựng đóng gói ứng dụng (building and packing) 2.2 Quản lý build 2.3 Tại phải quản lý build 2.4 Sơ lược Gradle .10 2.5 so sánh Maven, Ant, Gradle .12 2.6 Maven 16 2.7 lệnh maven 19 Chương 3: Demo 22 Thành viên Phân công Nguyễn Trung Ngun Phân cơng nhiệm vụ,tìm hiểu build, thực build java project, maven project Jenkins Nguyễn Văn Công Sợ lược gradle,so sánh maven,ant,gradle,làm pow point Vũ Ngọc Đức Anh Tìm hiểu maven,làm báo cáo Chương 1: Tổng quan 1.1 Tầm quan trọng Build management trình tự động hóa việc xây dựng đóng gói phần mềm từ mã nguồn thành sản phẩm phần mềm triển khai Maven công cụ build management phổ biến lĩnh vực phát triển phần mềm Java Tầm quan trọng build management Maven phát triển phần mềm Java lớn Dưới số lý do: Tự động hóa q trình xây dựng: Maven cho phép tự động hóa tồn trình xây dựng phần mềm, bao gồm việc tải thư viện phụ thuộc, biên dịch mã nguồn, đóng gói sản phẩm triển khai Điều giúp tiết kiệm thời gian giảm thiểu lỗi trình xây dựng thủ cơng Quản lý phụ thuộc: Maven có khả quản lý phụ thuộc dự án phần mềm, giúp đảm bảo thư viện framework sử dụng phiên không bị xung đột với Điều giúp đảm bảo tính ổn định độ tin cậy sản phẩm phần mềm Quản lý phiên bản: Maven cho phép quản lý phiên sản phẩm phần mềm, giúp đảm bảo phiên phát hành đầy đủ đắn, lỗi sửa đổi kiểm tra kỹ lưỡng Tích hợp liên kết triển khai: Maven có khả tích hợp triển khai tự động sản phẩm phần mềm vào môi trường khác môi trường phát triển, kiểm thử triển khai Điều giúp đơn giản hóa q trình triển khaivà giảm thiểu rủi ro sai sót q trình triển khai Tiêu chuẩn hóa: Maven cơng cụ tiêu chuẩn sử dụng rộng rãi cộng đồng phát triển phần mềm Java Việc sử dụng Maven giúp đảm bảo tính đồng khả tái sử dụng mã nguồn, giúp tiết kiệm thời gian tăng hiệu phát triển phần mềm Build management Maven yếu tố quan trọng phát triển phần mềm Java, giúp tăng tính ổn định, độ tin cậy hiệu trình phát triển triển khai sản phẩm phần mềm 1.2 lý chọn đề tài Maven công cụ build management phổ biến lĩnh vực phát triển phần mềm Java sử dụng rộng rãi cộng đồng phát triển phần mềm Java Vì vậy, lựa chọn chủ đề Build management - Maven phù hợp để nghiên cứu tìm hiểu trình tự động hóa việc xây dựng đóng gói phần mềm từ mã nguồn thành sản phẩm phần mềm triển khai Ngồi ra, Maven cịn có nhiều tính hữu ích khác, bao gồm quản lý phụ thuộc, quản lý phiên bản, tích hợp liên kết triển khai tự động, sử dụng rộng rãi dự án phần mềm Java Việc tìm hiểu Maven giúp cho lập trình viên nhà phát triển phần mềm Java tối ưu hóa q trình xây dựng triển khai sản phẩm phần mềm mình, giảm thiểu lỗi rủi ro q trình phát triển, tăng tính ổn định độ tin cậy sản phẩm phần mềm Ngồi ra, việc nghiên cứu Maven giúp cho lập trình viên nhà phát triển phần mềm Java hiểu rõ kỹ thuật quy trình trình phát triển phần mềm, từ cải thiện kỹ nâng cao chất lượng sản phẩm phần mềm 1.3 Phạm vi chủ đề Phạm vi chủ đề Build management - Maven bao gồm nội dung sau: Các khái niệm Build management: Tìm hiểu trình xây dựng phần mềm, khái niệm Build management, lợi ích việc sử dụng công cụ build management Giới thiệu Maven: Tìm hiểu Maven, tính Maven, cách Maven hoạt động Cấu trúc dự án Maven: Tìm hiểu cấu trúc dự án Maven, tệp tin quan trọng dự án Maven, cách sử dụng Maven để tạo tệp tin Quản lý phụ thuộc Maven: Tìm hiểu cách Maven quản lý phụ thuộc dự án phần mềm cách sử dụng Maven để quản lý phụ thuộc Quản lý phiên Maven: Tìm hiểu cách Maven quản lý phiên sản phẩm phần mềm cách sử dụng Maven để quản lý phiên Tạo đóng gói sản phẩm phần mềm với Maven: Tìm hiểu cách sử dụng Maven để tạo đóng gói sản phẩm phần mềm, bao gồm file JAR, WAR gói khác Tích hợp triển khai sản phẩm phần mềm với Maven: Tìm hiểu cách sử dụng Maven để tích hợp triển khai sản phẩm phần mềm vào môi trường khác nhau, bao gồm môi trường phát triển, kiểm thử triển khai Sử dụng plugin Maven: Tìm hiểu cách sử dụng plugin Maven để tăng cường tính Maven, bao gồm plugin hữu ích plugin để kiểm tra mã nguồn, plugin để tạo tài liệu plugin để phát triển cácứng dụng web Tùy chỉnh Maven: Tìm hiểu cách tùy chỉnh Maven để phù hợp với yêu cầu cụ thể dự án phần mềm Một số lưu ý sử dụng Maven: Tìm hiểu số lưu ý thủ thuật sử dụng Maven, bao gồm cách sử dụng Maven với công cụ khác Git Jenkins Phạm vi chủ đề Build management - Maven tập trung vào khái niệm bản tính Maven, cách sử dụng Maven để xây dựng, quản lý triển khai sản phẩm phần mềm Tuy nhiên, khơng bao gồm chi tiết kỹ thuật sâu Maven công cụ build management khác Chương 2: Cơ sở lý thuyết 2.1 xây dựng đóng gói ứng dụng (building and packing) Xây dựng đóng gói ứng dụng q trình biên dịch đóng gói tệp tin nguồn ứng dụng thành sản phẩm hồn chỉnh triển khai Quá trình thường gọi trình build packaging Trong trình xây dựng, tệp tin nguồn ứng dụng, bao gồm mã nguồn, tài nguyên thư viện phụ thuộc, biên dịch chuyển đổi thành tệp tin thực thi, bao gồm file JAR, WAR, EXE, DLL định dạng khác tùy thuộc vào loại ứng dụng tảng đích Sau q trình xây dựng hồn tất, q trình đóng gói bắt đầu Trong q trình đóng gói, tệp tin thực thi tài nguyên liên quan đóng gói lại thành góihồn chỉnh triển khai Gói thường bao gồm tệp tin thực thi, tệp tin cấu hình, tài nguyên tệp tin khác cần thiết để triển khai ứng dụng Q trình xây dựng đóng gói ứng dụng phần quan trọng trình phát triển phần mềm, giúp đảm bảo sản phẩm phần mềm tạo hồn chỉnh triển khai Các công cụ build management, Maven, Gradle Ant, cung cấp tính để tự động hóa quản lý q trình xây dựng đóng gói ứng dụng Tuy nhiên, q trình xây dựng đóng gói ứng dụng gặp phải vấn đề, bao gồm lỗi biên dịch, phụ thuộc sai phiên bản, vấn đề tương thích bảo mật Để giải vấn đề này, nhà phát triển phần mềm cần phải có kiến thức q trình xây dựng đóng gói ứng dụng, sử dụng cơng cụ kỹ thuật để giải vấn đề chúng xảy Ngồi ra, q trình xây dựng đóng gói ứng dụng cần phải tích hợp vào quy trình phát triển phần mềm chung, bao gồm việc sử dụng công cụ quản lý mã nguồn, kiểm thử triển khai để đảm bảo trình phát triển triển khai phần mềm thực cách hiệu đáp ứng yêu cầu chất lượng bảo mật sản phẩm phần mềm Tóm lại, q trình xây dựng đóng gói ứng dụng trình quan trọng trình phát triển phần mềm đóng góp vào việc tạo sản phẩm phần mềm hồn chỉnh triển khai Các công cụ build management kỹ thuật tự động hóa giúp đơn giản hóa tối ưu hóa q trình xây dựng đóng gói ứng dụng Tuy nhiên, cần phải đối mặt với vấn đề xảy q trình tích hợp q trình xây dựng đóng gói ứng dụng vào quy trình phát triển phần mềm chung để đảm bảo hiệu đáp ứng yêu cầu chất lượng bảo mật sản phẩm phần mềm 2.2 Quản lý build Quản lý build trình quản lý tổ chức hoạt động xây dựng đóng gói phần mềm thành sản phẩm hồn chỉnh Quá trình bao gồm việc tổ chức cơng cụ, quy trình kỹ thuật để tự động hóa quản lý hoạt động xây dựng đóng gói phần mềm Quản lý build phần quan trọng trình phát triển phần mềm, giúp đảm bảo sản phẩm phần mềm xây dựng đóng gói cách xác hiệu Nó giúp đơn giản hóa tối ưu hóa quy trình xây dựng đóng gói phần mềm, giảm thiểu thời gian chi phí phát triển phần mềm Các công cụ quản lý build Maven, Gradle Ant cung cấp tínhnăng để tự động hóa quản lý q trình xây dựng đóng gói phần mềm Chúng cho phép lập trình viên nhà phát triển phần mềm định nghĩa quản lý tệp tin cấu hình, quản lý phụ thuộc phiên chúng, thiết lập quy trình cơng cụ kiểm thử tự động, tạo tệp tin thực thi đóng gói sản phẩm phần mềm Các công cụ quản lý build tích hợp vào quy trình phát triển phần mềm chung, bao gồm quản lý mã nguồn, kiểm thử triển khai Chúng giúp đơn giản hóa tự động hóa cơng việc quản lý xây dựng phần mềm, giảm thiểu lỗi rủi ro trình phát triển tăng tính ổn định độ tin cậy sản phẩm phần mềm Quản lý build bao gồm quy trình kỹ thuật để giải vấn đề xảy q trình xây dựng đóng gói phần mềm, bao gồm lỗi biên dịch, phụ thuộc sai phiên bản, vấn đề tương thích bảo mật Ngồi ra, quản lý build đóng vai trị quan trọng quản lý phiên sản phẩm phần mềm Chúng giúp định nghĩa quản lý phiên sản phẩm phần mềm, giúp đảm bảo tính tương thích độ tin cậy sản phẩm phần mềm tăng khả quản lý triển khai sản phẩm phần mềm Tóm lại, quản lý build phần quan trọng trình phát triển phần mềm, giúp đảm bảo rằngsản phẩm phần mềm xây dựng đóng gói cách xác hiệu Các công cụ quản lý build giúp tự động hóa quản lý q trình xây dựng đóng gói phần mềm, giảm thiểu thời gian chi phí phát triển phần mềm Chúng đóng vai trị quan trọng quản lý phiên sản phẩm phần mềm tích hợp vào quy trình phát triển phần mềm chung để đảm bảo tính ổn định độ tin cậy sản phẩm phần mềm 2.3. Tại phải quản lý build Quản lý build phần quan trọng trình phát triển phần mềm giúp đảm bảo sản phẩm phần mềm xây dựng đóng gói cách xác hiệu Lý phải quản lý build: Tự động hóa q trình xây dựng đóng gói: Quản lý build giúp tự động hóa trình xây dựng đóng gói phần mềm, giảm thiểu thời gian chi phí phát triển phần mềm Tự động hóa cơng việc xây dựng đóng gói phần mềm giúp đơn giản hóa q trình phát triển phần mềm đảm bảo tính quán sản phẩm phần mềm Quản lý phụ thuộc phiên bản: Quản lý build giúp đảm bảo tính quán phiên phụ thuộc tài nguyên sản phẩm phần mềm Điều giúp đảm bảo phụ thuộc tài nguyên sử dụng sản phẩm phần mềm phiên khơng gây lỗi tương thích bảo mật Tăng tính ổn định độ tin cậy sản phẩm phần mềm: Quản lý build giúp đảm bảo tính ổn định độ tin cậy sản phẩm phần mềm Q trình xây dựng đóng gói phần mềm quản lý chặt chẽ giúp giảm thiểu lỗi rủi ro trình phát triển tăng khả quản lý triển khai sản phẩm phần mềm Quản lý phiên sản phẩm phần mềm: Quản lý build giúp định nghĩa quản lý phiên bảnsản phẩm phần mềm Điều giúp đảm bảo tính tương thích độ tin cậy sản phẩm phần mềm tăng khả quản lý triển khai sản phẩm phần mềm Tích hợp vào quy trình phát triển phần mềm: Quản lý build phần quy trình phát triển phần mềm chung, bao gồm quản lý mã nguồn, kiểm thử triển khai Tích hợp quản lý build vào quy trình phát triển phần mềm giúp tăng tính hiệu đáp ứng yêu cầu chất lượng bảo mật sản phẩm phần mềm Trong tổng thể, quản lý build phần quan trọng trình phát triển phần mềm Nó giúp đảm bảo tính qn phiên phụ thuộc tài nguyên, tăng tính ổn định vàđộ tin cậy sản phẩm phần mềm giảm thiểu thời gian chi phí phát triển phần mềm Ngoài ra, quản lý build giúp quản lý phiên sản phẩm phần mềm tích hợp vào quy trình phát triển phần mềm để tăng tính hiệu đáp ứng yêu cầu chất lượng bảo mật sản phẩm phần mềm 2.4 Sơ lược Gradle Giữ mã nguồn thử nghiệm nguồn song song riêng biệt Sử dụng quy ước đặt tên trường hợp thử nghiệm để xác định vị trí thực kiểm tra Có trường hợp thử nghiệm thiết lập mơi trường chúng thay tùy chỉnh dựng để chuẩn bị thử nghiệm Maven hỗ trợ quy trình làm việc dự án phát hành quản lý vấn đề Maven đề xuất số nguyên tắc cách bố trí cấu trúc thư mục dự án bạn Khi bạn tìm hiểu bố cục, bạn dễ dàng điều hướng dự án khác sử dụng Maven Mặc dù Maven áp dụng cách tiếp cận có quan điểm bố cục dự án, số dự án khơng phù hợp với cấu trúc lý lịch sử Mặc dù Maven thiết kế để linh hoạt đáp ứng nhu cầu dự án khác nhau, khơng thể đáp ứng tình mà khơng ảnh hưởng đến mục tiêu Nếu dự án bạn có cấu trúc dựng bất thường khơng thể tổ chức lại, bạn phải từ bỏ hồn tồn số tính sử dụng Maven Maven Not gì? Bạn nghe số điều sau Maven: Maven trang web công cụ tài liệu Maven mở rộng Ant phép bạn tải xuống phụ thuộc Maven tập hợp tập lệnh Ant tái sử dụng Trong Maven làm việc này, bạn đọc phần "Maven gì?" phần này, khơng phải tính mà Maven có mục tiêu hồn tồn khác Tóm tắt tính Tóm lại, sau tính Maven: Thiết lập dự án đơn giản tuân theo phương pháp hay - bắt đầu dự án mô-đun sau vài giây Sử dụng quán tất dự án - có nghĩa khơng có thời gian tăng tốc cho nhà phát triển tham gia vào dự án Quản lý phụ thuộc vượt trội bao gồm cập nhật tự động, đóng phụ thuộc (cịn gọi phụ thuộc bắc cầu) Có thể dễ dàng làm việc với nhiều dự án lúc Một kho lưu trữ thư viện siêu liệu lớn phát triển để sử dụng xếp phù hợp với dự án Nguồn mở lớn để có sẵn phát hành họ theo thời gian thực Có thể mở rộng, với khả dễ dàng viết plugin bằng ngơn ngữ Java scripting Truy cập tức vào tính với khơng cần cấu hình bổ sung Nhiệm vụ Ant để quản lý phụ thuộc triển khai bên Maven Bản dựng dựa mơ hình: Maven xây dựng số lượng dự án thành loại đầu xác định trước, chẳng hạn JAR, WAR phân phối dựa siêu liệu dự án mà không cần thực tập lệnh hầu hết trường hợp Trang web thống thông tin dự án: Sử dụng siêu liệu trình xây dựng, Maven tạo trang web tệp PDF bao gồm tài liệu bạn muốn thêm thêm vào báo cáo tiêu chuẩn tình trạng phát triển dự án Các ví dụ thơng tin nhìn thấy cuối phần điều hướng bên trái trang web menu "Thông tin Dự án" "Báo cáo Dự án" Quản lý phát hành xuất phân phối: Không cần cấu hình bổ sung nhiều, Maven tích hợp với hệ thống kiểm soát nguồn bạn (chẳng hạn Subversion Git) quản lý việc phát hành dự án dựa thẻ định Nó xuất điều đến vị trí phân phối để dự án khác sử dụng Maven xuất đầu riêng lẻ JAR, kho lưu trữ bao gồm tài liệu phụ thuộc khác dạng phân phối nguồn Quản lý phụ thuộc: Maven khuyến khích sử dụng kho lưu trữ trung tâm JAR phụ thuộc khác Maven kèm với chế mà máy khách dự án bạn sử dụng để tải xuống JAR cần thiết để xây dựng dự án bạn từ kho lưu trữ JAR trung tâm giống CPAN Perl Điều cho phép người dùng Maven sử dụng lại JAR dự án khuyến khích giao tiếp dự án để đảm bảo vấn đề tương thích ngược xử lý 2.7 lệnh maven Maven công cụ quản lý dự án tự động hố q trình biên dịch, kiểm thử triển khai phần mềm Java Maven sử dụng tệp cấu hình POM (Project Object Model) để quản lý phụ thuộc, tài nguyên thành phần khác dự án Dưới số lệnh Maven mà bạn sử dụng để quản lý dự án mình: `mvn clean`: Xóa tệp tạo q trình biên dịch trước đó, bao gồm tệp class, tệp tài liệu tệp cấu hình `mvn compile`: Biên dịch mã nguồn Java dự án `mvn test`: Chạy kiểm tra đơn vị dự án `mvn package`: Đóng gói tệp jar war dự án `mvn install`: Cài đặt tệp đóng gói dự án vào kho lưu trữ Maven để sử dụng dự án khác `mvn deploy`: Triển khai tệp đóng gói dự án lên kho lưu trữ từ xa, chẳng hạn Maven Central `mvn dependency:tree`: Hiển thị phụ thuộc dự án `mvn dependency:resolve`: Tìm kiếm tải phụ thuộc dự án `mvn help`: Hiển thị trợ giúp lệnh Maven có sẵn Ngồi lệnh này, Maven cịn có nhiều lệnh khác để quản lý phần khác dự án, lệnh lệnh quan trọng Việc làm quen với lệnh giúp bạn quản lý dự án hiệu Chương 3: Demo Yêu cầu: Đã cấu hình JDK cho Jenkins Đã cấu hình Maven cho Jenkins sử dụng project maven github có url: https://github.com/stackjava/spring-boot-hello Đây ví dụ spring, cấu hình chạy port 8081 Đầu tiên, ta tạo plan build cách click vào New Chọn Maven Project và nhập tên cho plan build Item Ở dùng source code từ github nên chọn source từ github về) Git (khi build, jenkins clone Để Jenkins clone source code, ta cần cấu hình account git cho Nhập username/password tài khoản github mà bạn sử dụng để clone source code (nếu bạn dùng bitbucket, gitlab… nhập username/password tương ứng) Nhập repository URL project git Phần Credentials chọn account git mà bạn vừa thêm Click Save Sau Save, hình thấy plan build vừa tạo Click vào icon build để build project Ở menu bên trái có trạng thái build project Click vào để xem Click vào Console Ouput để xem log realtime trình build Bạn thấy Jenkins tạo workspace, clone source code từ github workspace, thực build maven project (download thư viện) thành file jar Kết quả: Mở workspace ta thấy file jar build Chạy thử file jar vừa build lệnh: java -jar spring-boot-hello-0.0.1-SNAPSHOT.jar Mở trình duyệt truy cập địa http://localhost:8081 KẾT LUẬN Về lý thuyết kiến thức - Nhóm nắm rõ build management - Nhóm có thêm hiểu biết cơng cụ sử dụng hỗ trợ quản lí build Cách thức làm việc nhóm Nhận xét: - Mỗi thành viên có trách nhiệm với phần việc nhiên cịn tồn đọng nhiều hạn chế mặt lực Hướng phát triển - Demo - Hồn thiện nh cịn khuyết thiếu Đội nhóm Các thành viên ếp tục trau dồi cải thiện kỹ cịn yếu Trưởng nhóm cần cố gắng Bài học rút Các thành viên nhóm cần phải: - Tơn trọng ý kiến thành viên khác nhóm - Các thành viên phải biết giúp đỡ - Các thành viên phải biết chia sẻ với - Mỗi thành viên phải đóng góp q trình thực kế hoạch đề Các thành viên không nên: - Quá nhẹ nhàng công việc - Thiếu chủ động công việc - Đùn đẩy trách nghiệm cho người khác - Không ý đến công việc nhóm