Giảm 50% tất cả các gói, thời gian có hạn. Bắt đầu từ $2.48/mo
18 phút còn lại
Ứng Dụng Web & Kinh Doanh

Nắm vững Maven: lệnh chi tiết, tùy chọn và bảng tóm tắt để phát triển hiệu quả

Ada Lovegood By Ada Lovegood Đọc trong 18 phút Cập nhật 23 tháng 2, 2025
hướng dẫn lệnh mvn

Tự động hóa và các công cụ phát triển chắc chắn là những khía cạnh quan trọng nhất của một dự án, và trong blog này, chúng tôi muốn thảo luận về Maven. Maven là một công cụ tự động hóa mạnh mẽ cho các dự án Java. Nó đơn giản hóa quá trình build và tạo ra cấu trúc thống nhất cho các dự án. Vì vậy, nó giúp bạn dễ dàng quản lý và hiểu các dự án hơn. Blog này bao gồm hầu hết mọi thứ trong thế giới Maven, bao gồm một loạt rộng rãi các lệnh và tùy chọn sẽ hợp lý hóa quy trình phát triển của bạn. Chúng tôi sẽ khám phá các khía cạnh khác nhau như Quản Lý Server và Container, Quản Lý Kiểm Soát Mã Nguồn (SCM), và GPG để ký các artifact. Ngoài ra, chúng tôi sẽ tìm hiểu các lệnh chuyên dụng cho Quản Lý Plugin, Assembly và Distribution, và tạo các trang dự án và báo cáo. Vì vậy, khi kết thúc hướng dẫn này, bạn sẽ có sự hiểu biết toàn diện về các lệnh và tùy chọn Maven.

Tổng Quan Về Maven; Vòng Đời Dự Án

Trong ngôn ngữ Yiddish, từ Maven có nghĩa là 'người tích lũy kiến thức'. Ý nghĩa này gần như giải thích được sức mạnh của Maven như một công cụ tự động hóa cho các dự án Java. Maven làm cho quá trình build và quản lý dự án trở nên rất đơn giản. Và nó thực hiện điều này bằng cách tự động hóa các nhiệm vụ khác nhau và cung cấp một hệ thống build thống nhất.

Bây giờ, để có ý tưởng rõ ràng về cách Maven hoạt động, hãy chia nhỏ khái niệm về Mô hình Đối tượng Dự án (POM). POM là một tệp XML chứa thông tin về dự án và chi tiết cấu hình. Maven sử dụng POM làm nền tảng của công việc của nó. Vì vậy, Maven lấy các dependency của dự án, thư mục build, thư mục nguồn, thư mục nguồn kiểm tra, và mục tiêu từ nguồn này để hoạt động.

Sau khi định nghĩa dự án và các dependency của nó từ pom.xml, bất cứ khi nào bạn chạy một lệnh Maven, nó sẽ đọc tệp pom để thực hiện giai đoạn build cụ thể của lệnh đó. Có một vòng đời dự án dài từ lúc bạn tạo dự án cho đến khi bạn thực sự triển khai nó. Vòng đời này định nghĩa trình tự các giai đoạn mà dự án của bạn sẽ trải qua. Mỗi giai đoạn đại diện cho một bước trong vòng đời và thực hiện các tác vụ cụ thể, chẳng hạn như biên dịch mã nguồn, chạy các bài kiểm tra, và đóng gói mã thành định dạng có thể phân phối. Tất cả những điều này làm cho vòng đời dự án của Maven trở thành một khái niệm quan trọng để hiểu. Vì vậy, hãy xem xét kỹ hơn các giai đoạn vòng đời của Maven:

  1. Xác thực: Giai đoạn này xác thực dự án có chính xác và tất cả thông tin cần thiết đã sẵn có.
  2. Biên dịch: Trong giai đoạn này, mã nguồn của dự án được biên dịch.
  3. Kiểm tra: Giai đoạn này kiểm tra mã nguồn đã biên dịch bằng một framework kiểm thử đơn vị phù hợp.
  4. Gói: Giai đoạn này đóng gói mã đã biên dịch ở định dạng có thể phân phối (ví dụ: JAR, WAR).
  5. Cài đặt: Trong giai đoạn cài đặt, gói được cài đặt vào kho lưu trữ cục bộ và trở nên sẵn dùng cho các dự án khác trên cùng một máy.
  6. Triển khai: Giai đoạn này sao chép gói cuối cùng vào kho lưu trữ từ xa để chia sẻ với các nhà phát triển và dự án khác.

Mỗi giai đoạn này có một lệnh mvn tương ứng mà chúng tôi sẽ đề cập trong các phần sắp tới của bộ gợi ý Maven này. Đây sẽ là những lệnh quan trọng nhất để quản lý quy trình xây dựng dự án của bạn.

Quản lý Phụ thuộc

Một trong những tính năng cốt lõi của Maven là Quản lý phụ thuộc. Tính năng này rất quan trọng đối với hiệu suất của Maven vì nó giúp xử lý các phụ thuộc dự án dễ dàng hơn.

Maven Quản Lý Dependencies Như Thế Nào

Maven sử dụng một kho lưu trữ tập trung, được gọi là Kho lưu trữ Maven Central, nơi lưu trữ một loạt lớn các thư viện và plugin. Khi một dự án cần một phụ thuộc, Maven tự động tải các thư viện cần thiết từ kho lưu trữ trung tâm và lưu trữ chúng trong kho lưu trữ cục bộ. Kho lưu trữ cục bộ này là một bộ nhớ đệm trên máy cục bộ của bạn giúp giảm thời gian tải xuống cho các lần xây dựng trong tương lai.

Các phụ thuộc trong Maven được chỉ định trong pom.xml tập tin dưới phần <dependencies> . Mỗi phụ thuộc được định nghĩa bởi một bộ tọa độ: groupId, artifactId, và version.

Phạm vi Phụ thuộc

Khi làm việc với Maven, bạn có thể chỉ định phạm vi của các phụ thuộc. Yếu tố này xác định mức độ hiển thị của classpath và giai đoạn vòng đời của phụ thuộc. Do đó, bạn có thể biết giai đoạn nào cần phụ thuộc này. Các phạm vi phổ biến là:

  • Biên dịch: Đây là phạm vi mặc định và được sử dụng khi không chỉ định phạm vi nào. Các phụ thuộc có phạm vi này có sẵn trong tất cả các giai đoạn xây dựng và được bao gồm trong gói cuối cùng.
  • Được cung cấp: Chúng tôi mong đợi các phụ thuộc có phạm vi này sẵn sàng từ môi trường thời gian chạy. Chúng được sử dụng trong quá trình biên dịch nhưng không được bao gồm trong gói cuối cùng.
  • Thời gian chạy: Các phụ thuộc này không cần thiết cho quá trình biên dịch nhưng được yêu cầu trong quá trình thực thi. Chúng được bao gồm trong classpath thời gian chạy.
  • Kiểm tra: Các phụ thuộc này chỉ cần thiết cho việc biên dịch và chạy các bài kiểm thử. Chúng không được bao gồm trong thời gian chạy hoặc gói cuối cùng.
  • Hệ thống: Phạm vi hệ thống tương tự như phạm vi được cung cấp, nhưng bạn phải cung cấp tập tin JAR mà Maven sẽ sử dụng. Tập tin JAR phải có trong đường dẫn hệ thống.

Các Phụ Thuộc Bắc Cầu

Một trong những tính năng mạnh mẽ của Maven là nó có thể xử lý các phụ thuộc bắc cầu. Khi một dự án khai báo một phụ thuộc, Maven không chỉ bao gồm phụ thuộc đó mà còn bao gồm các phụ thuộc của nó, các phụ thuộc của các phụ thuộc đó, và cứ tiếp tục như vậy. Chuỗi phụ thuộc này được gọi là các phụ thuộc bắc cầu. Để làm cho mọi thứ rõ ràng, hãy tưởng tượng dự án của bạn phụ thuộc vào spring-boot-starter-web, bây giờ Maven sẽ bao gồm tất cả các thư viện mà spring-boot-starter-web phụ thuộc, chẳng hạn như Spring Core, Spring MVC và Jackson.

Bây giờ bạn đã biết về lý thuyết cách Maven quản lý các phụ thuộc, hãy xem cách làm việc với nó trong thực tế:

mvn dependency:resolve

Lệnh này có thể giải quyết và hiển thị tất cả các phụ thuộc cần thiết cho dự án của bạn. Bạn có thể sử dụng nó để xem những thư viện mà dự án của bạn phụ thuộc vào và đảm bảo mọi thứ đều ổn.

mvn dependency:tree

Với lệnh này, bạn có thể có cấu trúc cây của các phụ thuộc dự án của bạn. Nó cho thấy cách mỗi phụ thuộc có liên quan và giúp xác định các xung đột tiềm ẩn.

mvn dependency:analyze

Lệnh này phân tích các phụ thuộc của dự án của bạn để tìm ra bất kỳ hiện vật nào không được sử dụng. Nó giúp bạn dọn dẹp dự án của bạn và tránh các gói thừa không cần thiết.

Tính năng quản lý phụ thuộc của Maven làm cho quá trình phát triển của bạn dễ dàng hơn. Nó cũng giúp bạn tránh được các lỗi thường gặp và duy trì cấu trúc dự án sạch sẽ, có tổ chức.

Thực thi

Thực thi trong Maven liên quan đến việc chạy các tác vụ hoặc mục tiêu cụ thể trong dự án. Những tác vụ này có thể từ chạy các chương trình Java đến thực thi các script ngoài hoặc lệnh. Maven cung cấp các plugin mạnh mẽ để thực thi này dễ dàng. Đây là một tính năng khác của Maven giúp nó trở thành công cụ tuyệt vời để tự động hóa các phần khác nhau trong quy trình làm việc của dự án. Vì vậy, hãy xem xét các lệnh thực thi Maven chính:

mvn exec:java

Lệnh này được sử dụng để thực thi một lớp Java trong dự án của bạn. Nó rất hữu ích khi chạy các lớp main hoặc kiểm tra các chương trình Java độc lập mà không cần đóng gói chúng trước.

mvn exec:exec

Lệnh này cho phép bạn thực thi bất kỳ chương trình hoặc script bên ngoài nào từ trong môi trường Maven. Bạn có thể sử dụng nó để chạy shell script, công cụ bên ngoài, hoặc các chương trình khác là một phần của quá trình build của bạn.

Các lệnh thực thi trong Maven giúp bạn tự động hóa các tác vụ lặp lại. Bạn cũng có thể sử dụng chúng để tích hợp các công cụ bên ngoài và script vào vòng đời build Maven của bạn. Nhìn chung, chúng có thể giúp bạn quản lý các tác vụ của mình hiệu quả hơn nhiều.

Quản Lý Server và Container

Quản lý máy chủ và container là một giai đoạn quan trọng trong việc phát triển và triển khai các ứng dụng web. Maven tạo điều kiện thuận lợi cho quá trình này với các plugin mạnh mẽ cho phép bạn chạy, triển khai và quản lý các ứng dụng web trên nhiều máy chủ và container khác nhau trực tiếp từ quá trình build của bạn. Dưới đây là một số lệnh Maven cơ bản để quản lý máy chủ và container:

mvn tomcat7:run

Lệnh này chạy ứng dụng web của bạn bằng cách sử dụng Apache Tomcat. Nó rất hữu ích cho phát triển cục bộ và kiểm thử, cho phép bạn nhanh chóng triển khai và kiểm thử ứng dụng web của mình mà không cần thiết lập một môi trường máy chủ đầy đủ.

mvn jetty:run

Lệnh này chạy ứng dụng web của bạn bằng cách sử dụng một máy chủ web phổ biến được gọi là Jetty. Giống như Tomcat, Jetty tuyệt vời cho phát triển và kiểm thử nhờ khả năng triển khai nhẹ và nhanh chóng.

Cách Server và Container Management Hoạt Động

Maven sử dụng các plugin như tomcat7-maven-pluginjetty-maven-plugin để quản lý các hoạt động của máy chủ. Những plugin này cho phép bạn khởi động, dừng và cấu hình các máy chủ như một phần của vòng đời build của bạn. Vì vậy, việc phát triển và kiểm thử các ứng dụng web trong một môi trường nhất quán trở nên dễ dàng hơn nhiều. Sử dụng các profile Maven để xác định cấu hình máy chủ cho các môi trường khác nhau giúp bạn quản lý các cài đặt khác nhau cho phát triển, kiểm thử và sản xuất. Tính năng Maven này cũng cho phép bạn cấu hình ghi nhật ký và giám sát trong các plugin máy chủ của bạn. Vì vậy, bạn có thể theo dõi các hoạt động của máy chủ và khắc phục sự cố một cách nhanh chóng.

SCM (Quản Lý Kiểm Soát Mã Nguồn)

Một khía cạnh quan trọng của bất kỳ dự án phát triển nào là Quản lý Kiểm soát Nguồn (SCM). Các nhóm phát triển cần SCM để quản lý các thay đổi đối với mã nguồn theo thời gian. Maven có một bộ lệnh để tương tác với các hệ thống SCM như Git, Subversion và các hệ thống khác. Các lệnh này có thể tự động hóa các tác vụ khác nhau, chẳng hạn như kiểm tra mã, lấy mã và cập nhật phiên bản dự án. Dưới đây là một số lệnh SCM Maven chính và các tùy chọn của chúng:

mvn scm:checkin

Bạn có thể sử dụng lệnh mvn này để kiểm tra các thay đổi của dự án vào SCM. Lệnh này giúp tự động hóa quá trình cam kết các thay đổi vào kho lưu trữ kiểm soát nguồn. Vì vậy, các bản cập nhật mới nhất chắc chắn được lưu và chia sẻ với nhóm.

mvn scm:checkout

Lệnh maven này được sử dụng để lấy mã dự án từ kho lưu trữ SCM và nó rất hữu ích khi nhận được một bản sao cục bộ của dự án. Vì vậy, bạn luôn chắc chắn rằng mình đang làm việc với phiên bản mới nhất của mã nguồn.

mvn scm:update

Lệnh mvn này cập nhật bản sao cục bộ đang hoạt động của dự án với các thay đổi mới nhất từ kho lưu trữ SCM. Công việc của lệnh này là đảm bảo rằng cơ sở mã cục bộ của bạn được đồng bộ với kho lưu trữ và bao gồm bất kỳ thay đổi mới nào được thực hiện bởi các thành viên nhóm khác.

mvn scm:status

Lệnh mvn này hiển thị trạng thái của bản sao cục bộ đang hoạt động so với kho lưu trữ SCM. Nói cách khác, nó cho bạn biết về tất cả các thay đổi đã được thực hiện cục bộ nhưng chưa được cam kết vào kho lưu trữ.

mvn scm:tag

Lệnh này được sử dụng để tạo một thẻ trong kho lưu trữ SCM. Các thẻ đánh dấu các điểm cụ thể trong lịch sử dự án, chẳng hạn như bản phát hành hoặc cột mốc quan trọng.

Các lệnh Maven SCM có thể hợp lý hóa rất nhiều quá trình quản lý mã nguồn của dự án của bạn. Việc hiểu và sử dụng các lệnh này sẽ nâng cao hiệu quả và sự cộng tác trong nhóm phát triển của bạn.

GPG (Trình Bảo Vệ Quyền Riêng Tư GNU)

GNU Privacy Guard (GPG) là một phần mềm mã hóa cho phép người dùng mã hóa và ký dữ liệu cũng như các giao tiếp. Trong bối cảnh Maven, GPG được sử dụng để ký các artifact nhằm đảm bảo tính xác thực và tính toàn vẹn của chúng. Điều này rất quan trọng khi bạn triển khai các artifact tới các kho lưu trữ công khai vì nó cho phép người dùng xác minh rằng các artifact không bị sửa đổi. Maven cung cấp một số lệnh để làm việc với GPG và tạo điều kiện thuận lợi cho quá trình ký và triển khai các artifact của dự án của bạn. Hãy xem một số ví dụ về các lệnh này:

mvn gpg:sign

Bạn có thể sử dụng lệnh maven này để ký các artifact của dự án bằng GPG. Ký các artifact đảm bảo rằng chúng có thể được xác minh bởi những người khác và cung cấp một lớp bảo mật và niềm tin. Lệnh này thường được sử dụng trong quá trình build để ký JAR, WAR và các loại artifact khác trước khi triển khai.

mvn gpg:sign-and-deploy-file

Lệnh mvn này kết hợp việc ký và triển khai một tệp thành một bước duy nhất. Bạn có thể sử dụng nó khi bạn muốn ký một artifact và ngay lập tức triển khai nó tới một kho lưu trữ. Điều này hợp lý hóa quá trình của bạn và đảm bảo bạn muốn ký một artifact và ngay lập tức triển khai nó tới một kho lưu trữ.

Kết hợp ký GPG vào quá trình build Maven của bạn có thể nâng cao tính bảo mật và độ tin cậy của phần mềm của bạn. Vì vậy, nó trở nên dễ dàng hơn cho người dùng để tin tưởng và xác minh các artifact của bạn.

Quản lý Phát hành

Quản lý bản phát hành rất quan trọng trong phát triển phần mềm. Với quản lý bản phát hành hiệu quả, bạn có thể đảm bảo rằng các phiên bản phần mềm được quản lý, đóng gói và triển khai đúng cách. Maven cung cấp một bộ lệnh để tự động hóa và hợp lý hóa quá trình phát hành. Hãy xem một số ví dụ về các tùy chọn maven và lệnh để quản lý bản phát hành:

mvn release:prepare

Lệnh mvn này được dùng để chuẩn bị một dự án cho việc phát hành. Nó thực hiện các tác vụ như kiểm tra xem có thay đổi chưa được commit, cập nhật số phiên bản trong pom.xml các tệp, gắn thẻ bản phát hành trong hệ thống quản lý mã nguồn (SCM), và cập nhật pom.xml các tệp lên phiên bản phát triển tiếp theo. Nó đảm bảo dự án ở trạng thái ổn định và sẵn sàng phát hành.

mvn release:perform

Lệnh này thực hiện quá trình phát hành thực tế. Nó lấy dự án từ SCM tại thẻ được tạo bởi lệnh release:prepare xây dựng dự án và triển khai các artifact đến kho lưu trữ được chỉ định. Lệnh này đảm bảo các artifact được xây dựng từ trạng thái chính xác của mã vào thời điểm chuẩn bị phát hành.

mvn release:clean

Lệnh mvn này xóa tất cả các tệp sao lưu bộ mô tả phát hành được tạo trong quá trình release:prepare Nó dọn sạch môi trường và đảm bảo không có tệp thừa lại từ các lần thử phát hành trước. Lệnh này giúp bạn có không gian làm việc sạch sẽ và ngăn chặn các vấn đề tiềm ẩn trong các lần phát hành tiếp theo.

Sử dụng các lệnh quản lý bản phát hành giúp tối ưu hóa quy trình phát hành, cải thiện chất lượng phần mềm và đảm bảo các bản phát hành được quản lý hiệu quả.

Nguyên mẫu

Nếu bạn là một nhà phát triển muốn tạo cấu trúc dự án dựa trên các mẫu được xác định trước, bạn nên cân nhắc sử dụng Maven Archetype plugin. Ở đây chúng tôi sẽ thảo luận các lệnh Maven chính liên quan đến archetype.

mvn archetype:generate

Bạn có thể sử dụng lệnh mvn này để tạo một dự án mới từ một mẫu hiện có, hay "archetype". Lệnh này hướng dẫn người dùng chọn một archetype và cấu hình dự án mới. Vì vậy nó giúp bạn thiết lập một dự án có cấu trúc tốt.

mvn archetype:catalog

Lệnh này liệt kê các archetype có sẵn có thể được dùng để tạo các dự án mới. Nó hữu ích để khám phá các mẫu khác nhau được cung cấp bởi cộng đồng Maven và xác định archetype nào phù hợp nhất với nhu cầu dự án của bạn.

Bằng cách sử dụng hai lệnh maven này, bạn có thể nhanh chóng bắt đầu một dự án mới. Cho dù bạn bắt đầu một ứng dụng Java đơn giản hay một dự án doanh nghiệp phức tạp, Maven archetype cung cấp một điểm khởi đầu quý giá.

Quản lý Plugin

Maven plugin cho phép các nhà phát triển mở rộng chức năng của Maven và tự động hóa các tác vụ khác nhau trong vòng đời xây dựng. Quản lý plugin hiệu quả đảm bảo dự án của bạn vẫn dễ bảo trì và các bản xây dựng có thể tái tạo được. Phần này sẽ bao gồm các lệnh quản lý Maven plugin cần thiết.

mvn plugin:download

Lệnh này được dùng để tải xuống một Maven plugin cụ thể từ kho lưu trữ. Bạn có thể sử dụng nó khi bạn muốn đảm bảo rằng một plugin cụ thể có sẵn trong kho lưu trữ cục bộ của bạn trước khi chạy các lệnh Maven khác phụ thuộc vào nó.

mvn plugin:help

Lệnh maven này hiển thị thông tin chi tiết và tài liệu về một Maven plugin cụ thể. Bạn có thể sử dụng nó khi bạn cần hiểu rõ các mục tiêu, tham số và cấu hình khác nhau có sẵn cho một plugin.

Các lệnh quản lý Maven plugin này cải thiện quá trình xây dựng, tự động hóa các quy trình làm việc và duy trì các tiêu chuẩn cao về chất lượng và sự nhất quán của dự án.

Lắp ráp & Phân phối

Chức năng tập hợp và phân phối của Maven cho phép các nhà phát triển đóng gói các dự án của họ thành các định dạng khác nhau để phân phối. Bạn có thể sử dụng những công cụ này để tạo các JAR có thể thực thi, các ứng dụng được gói hoặc các bản phân phối tùy chỉnh bao gồm các dependency và các tài nguyên khác. Ở đây chúng tôi sẽ bao gồm các lệnh Maven chính cho tập hợp và phân phối.

mvn assembly:assembly

Lệnh này tạo một tập hợp cho dự án. Một tập hợp là một gói có thể phân phối có thể bao gồm các tệp nhị phân, mã nguồn, dependency và các tài nguyên khác. Lệnh này sử dụng Assembly Plugin để tạo các gói này dựa trên bộ mô tả tập hợp được cung cấp.

mvn assembly:directory

Lệnh mvn này tạo cấu trúc thư mục của tập hợp mà không thực sự tạo tệp lưu trữ. Lệnh này hữu ích để kiểm tra và xác minh nội dung và cấu trúc của tập hợp trước khi đóng gói nó.

Học cách sử dụng các lệnh tập hợp và phân phối của Maven có thể giúp bạn rất nhiều trong việc đóng gói và phân phối các ứng dụng của bạn.

Các Lệnh Tạo Trang

Các lệnh site của Maven là một cách tuyệt vời để ghi chép các dự án. Các lệnh này tạo các trang web tài liệu toàn diện cho các dự án của bạn. Ở đây chúng tôi sẽ bao gồm các lệnh site cần thiết và chức năng của chúng.

mvn site

Lệnh mvn site tạo tài liệu site của dự án và bao gồm thông tin về dự án, chẳng hạn như tóm tắt dự án, báo cáo dependency, sử dụng plugin, v.v.

mvn site:deploy

Bạn có thể sử dụng lệnh này để triển khai site được tạo ra đến một máy chủ từ xa. Điều này hữu ích để cung cấp tài liệu cho một nhóm người rộng hơn, chẳng hạn như các thành viên trong nhóm hoặc công chúng.

mvn site:stage

Lệnh này lưu trữ site vào một thư mục cục bộ. Bạn có thể sử dụng lệnh này để xem trước site cục bộ trước khi triển khai nó đến máy chủ từ xa.

Tài liệu gọn gàng và được tổ chức tốt rất quan trọng trong quá trình phát triển dự án. Lệnh maven site cho phép bạn có mọi thứ đúng vị trí và có giao tiếp tốt hơn trong các nhóm phát triển.

Các Lệnh WAR và JAR

Là một developer, bạn chắc chắn biết rằng khả năng đóng gói ứng dụng của mình thành các định dạng khác nhau là rất quan trọng trong quá trình phát triển. Maven cho phép bạn đóng gói các ứng dụng Java thành nhiều định dạng khác nhau, bao gồm các tệp WAR (Web Application Archive) và JAR (Java Archive). Tầm quan trọng của các định dạng đóng gói này trở nên rõ ràng khi bạn muốn triển khai ứng dụng trên các máy chủ và phân phối thư viện. Dưới đây là những lệnh mvn chính để tạo các tệp WAR và JAR:

mvn war:war

Lệnh này biên dịch dự án của bạn và đóng gói nó thành tệp WAR. Khi bạn chạy lệnh này, Maven sẽ tạo tệp WAR trong thư mục target của dự án của bạn.

mvn jar:jar

Lệnh này biên dịch dự án của bạn và đóng gói nó thành tệp JAR trong thư mục target của dự án của bạn.

Hai lệnh này giúp bạn trong triển khai và phân phối. Bạn có thể sử dụng chúng để quản lý và phân phối các ứng dụng Java một cách hiệu quả.

Báo cáo

Mọi dự án phần mềm đều cần báo cáo chi tiết để theo dõi tiến độ. Maven có các plugin mạnh mẽ và các lệnh mvn để tạo các loại báo cáo khác nhau. Phần này bao gồm hai plugin Maven mà bạn có thể sử dụng để báo cáo: Surefire và JaCoCo.

Trình cắm Surefire

Bạn có thể sử dụng plugin này để chạy các bài kiểm tra đơn vị trong dự án Maven. Nó tạo ra các báo cáo chi tiết về các bài kiểm tra đã được thực thi để bạn có thể chắc chắn rằng mã hoạt động theo cách bạn mong đợi.

mvn surefire-report:report

Lệnh này tạo báo cáo kiểm tra đơn vị ở định dạng dễ đọc và phân tích. Với lệnh này, Maven tạo báo cáo HTML trong target/site thư mục của dự án của bạn. Báo cáo này bao gồm thông tin về số lượng bài kiểm tra được chạy, vượt qua và thất bại, cùng với các dấu vết ngăn xếp chi tiết cho bất kỳ lỗi nào.

Plugin JaCoCo

Bạn có thể sử dụng plugin này để đo lường và báo cáo độ bao phủ mã được kiểm tra bằng các bài kiểm tra đơn vị. Vì vậy, bạn có thể đảm bảo rằng các bài kiểm tra của bạn đang bao phủ codebase.

mvn jacoco:report

Nếu bạn muốn xem những phần nào của mã đã được kiểm tra và những phần nào chưa được kiểm tra, lệnh này sẽ cung cấp cho bạn báo cáo độ bao phủ mã. Báo cáo mà lệnh này tạo là báo cáo HTML trong target/site/jacoco thư mục cho thấy các chỉ số bao phủ chi tiết cho các lớp, phương thức và dòng mã.

Hai plugin này giúp bạn theo dõi kết quả kiểm tra và độ bao phủ mã, cung cấp cho bạn những thông tin chi tiết hữu ích về sức khỏe và chất lượng của codebase của bạn.

Xây dựng Tùy chỉnh

Maven cho phép bạn tùy chỉnh build để đáp ứng các yêu cầu cụ thể của dự án của bạn. Trong phần này, chúng tôi sẽ trình bày cách sử dụng Maven profiles và định nghĩa thuộc tính để tùy chỉnh build.

Hồ sơ Maven

Với Maven profiles, bạn có thể xác định các cấu hình khác nhau cho dự án của bạn, có thể được kích hoạt dựa trên các yếu tố khác nhau như thuộc tính hệ thống, biến môi trường hoặc điều kiện tùy chỉnh. Điều này có nghĩa là bạn có thể tùy chỉnh quá trình build cho các môi trường khác nhau, chẳng hạn như phát triển, kiểm tra và sản xuất. Bạn có thể xác định các profile trong phần pom.xml tập tin dưới phần <profiles> của bạn. Và -p tùy chọn theo sau ID profile sẽ kích hoạt profile cho bạn.

Định Nghĩa Thuộc Tính

Maven properties cho phép bạn định nghĩa các giá trị có thể được tái sử dụng trong toàn bộ pom.xml tệp của bạn. Các thuộc tính này có thể được chỉ định trong pom.xml, thông qua dòng lệnh hoặc trong các tệp thuộc tính bên ngoài. Bạn có thể xác định các thuộc tính trong <properties> Mục của bạn pom.xml. Sau khi định nghĩa chúng, bạn có thể sử dụng các thuộc tính này trong pom.xml tệp.

Tùy chỉnh quá trình build trong Maven có thể giúp bạn thích ứng dự án của mình với các môi trường và yêu cầu khác nhau. Bằng cách sử dụng profiles, bạn có thể chuyển đổi giữa các thiết lập build khác nhau và bằng cách sử dụng properties, bạn có thể tái sử dụng và quản lý các giá trị một cách hiệu quả.

Kết luận

Blog này cung cấp giới thiệu toàn diện về Maven trong khi hướng dẫn bạn qua từng bước quá trình phát triển ứng dụng Java. Là một công cụ tự động hóa mạnh mẽ cho các dự án Java, Maven có các lệnh và khả năng khác nhau cho từng giai đoạn phát triển, và biết cách làm việc với các lệnh này và nắm vững chúng sẽ cải thiện chất lượng quá trình phát triển của bạn.

Câu hỏi thường gặp

Maven Được Dùng Để Làm Gì?

Maven là công cụ tự động hóa build và quản lý dự án cho các dự án Java. Nó đơn giản hóa quá trình build, quản lý các phụ thuộc của dự án và cung cấp cấu trúc dự án được chuẩn hóa. Maven cũng hỗ trợ tài liệu dự án, báo cáo và phân phối.

POM Trong Maven Là Gì?

Maven là công cụ tự động hóa quá trình build và quản lý các phụ thuộc cho các dự án Java. POM (Project Object Model) là tệp XML trong Maven chứa thông tin về dự án và chi tiết cấu hình được Maven sử dụng để xây dựng dự án. Tệp POM định nghĩa các phụ thuộc của dự án, plugin, goal và các cấu hình build khác.

Chia sẻ

Bài viết mới từ blog

Tiếp tục đọc.

Hình ảnh tính năng đánh giá Odoo với tiêu đề lớn ở bên trái và logo Odoo ở bên phải, được bao quanh bởi các bảng điều khiển giao diện ứng dụng nổi trên nền chủ đề mây màu tím nhẹ.
Ứng Dụng Web & Kinh Doanh

Đánh Giá Toàn Diện Odoo: Odoo Có Phù Hợp Với Doanh Nghiệp Của Bạn Không

Odoo là một trong những nền tảng ERP được xem xét rộng rãi nhất cho các doanh nghiệp đang phát triển, vì một lý do đơn giản: nó tập hợp nhiều tính năng trong một chỗ. Bán hàng, kế toán, quản lý hàng tồn kho

Jim SchwarzJim Schwarz 11 phút đọc
Hình ảnh tính năng các giải pháp WordPress mã nguồn mở với nền độ dốc đầy màu sắc, màn hình máy tính để bàn, trình chỉnh sửa mã, xem trước bảng điều khiển mờ và văn bản tiêu đề lớn ở bên trái.
Ứng Dụng Web & Kinh Doanh

Các Giải Pháp WordPress Mã Nguồn Mở Tốt Nhất Được Tối Ưu Hóa Cho Lập Trình Viên

WordPress vẫn có giá trị và hoạt động tốt cho rất nhiều trang web. Thư viện plugin của nó có hơn 62.000 plugin, và thư viện chủ đề của nó cung cấp hơn 14.000 chủ đề miễn phí. Đó là

Jim SchwarzJim Schwarz 14 phút đọc
Hình ảnh tính năng so sánh Automad và WordPress với logo của cả hai nền tảng và tiêu đề hỏi lập trình viên nên chọn CMS nào.
Ứng Dụng Web & Kinh Doanh

Automad Và WordPress: So Sánh Chi Tiết Hai Nền Tảng CMS Hàng Đầu

Automad và WordPress giải quyết cùng một vấn đề nhưng theo hai cách hoàn toàn khác nhau. Automad là một CMS và công cụ mẫu dựa trên tệp, do đó nội dung tồn tại dưới dạng tệp thay vì cơ sở dữ liệu, nhưng WordPress thì

Jim SchwarzJim Schwarz 9 phút đọc

Sẵn sàng triển khai? Từ $2.48/tháng.

Cloud độc lập, hoạt động từ 2008. AMD EPYC, NVMe, 40 Gbps. Hoàn tiền trong 14 ngày.