**Maven** là công cụ quản lý và thiết lập tự động 1 dự án phần mềm. Chủ yếu dùng cho các lập trình viên java, nhưng nó cũng có thể được dùng để xây dựng và quản lý các dự án dùng C#, Ruby, Scala hay ngôn ngữ khác. Maven phục vụ mục đích tương tự như Apache Ant, nhưng nó dựa trên khái niệm khác và cách hoạt động khác. Maven được quản lý bởi Apache Software Foundation, nó là một phần của dự án Jakarta Project.

Maven dùng khái niệm *Project Object Model* (POM) để mô tả việc build project, các thành phần phụ thuộc và các module. Nó định nghĩa trước các target cho việc khai báo task, trình biên dịch, đóng gói và thứ tự hoạt động để mọi việc diễn ra tốt nhất.

Maven tải các thư viện, plug-in từ 1 hoặc nhiều repositories. Maven cung cấp việc hỗ trợ tải file từ repository trung tâm của Maven 2  và các repositories khác. Cũng có thể upload các sản phẩm lên repository sau khi đã build xong.

Maven được xây dựng dựa trên kiến trúc plugin - cho phép sử dụng bất kỳ ứng dụng điều khiển nào thông qua đầu vào tiêu chuẩn. Về mặt lý thuyết, điều này cho phép bất kỳ ai cũng có thể viết các plugin để giao tiếp với các build tool (trình biên dịch, unit test tool, etc) cho bất kỳ ngôn ngữ nào khác. Nhưng trong thực tế, hỗ trợ và sử dụng cho các ngôn ngữ khác đã bị thu hẹp. Hiện tại thì plugin cho.Net đã có và vẫn được duy trì , và một plugin cho C/C++ cũng được duy trì cho Maven 1.

Ví dụ
-----

Một project Maven được cấu hình sử dụng Project Object Model, nó được lưu trong file `pom.xml`. Một ví dụ nhỏ:

```
<project>
 <!-- model version is always 4.0.0 for Maven 2.x POMs -->
 <modelVersion>4.0.0</modelVersion>
 
 <!-- project coordinates, i.e. a group of values which
 uniquely identify this project -->
 
 <groupId>com.mycompany.app</groupId>
 <artifactId>my-app</artifactId>
 <version>1.0</version>

 <!-- library dependencies -->
 
 <dependencies>
 <dependency>
 
 <!-- coordinates of the required library -->
 
 <groupId>junit</groupId>
 <artifactId>junit</artifactId>
 <version>3.8.1</version>
 
 <!-- this dependency is only used for running and compiling tests -->
 
 <scope>test</scope>
 
 </dependency>
 </dependencies>
</project>

```

Tham khảo
---------

1. ↑  Maven 3.0 Has Landed
2. ↑  "Maven 2 Central Repository". Bản gốc lưu trữ ngày 17 tháng 9 năm 2018. Truy cập ngày 9 tháng 11 năm 2010.
3. ↑  Maven Plugin[*liên kết hỏng*]
4. ↑  Maven Native Plug-in

Sách
----

* Van Zyl, Jason (ngày 1 tháng 10 năm 2008), *Maven: Definitive Guide* , O'Reilly Media, tr. 468, ISBN 0596517335

Available for free as PDF download or online reading:  Lưu trữ 2010-08-22 tại Wayback Machine

Xem thêm
--------

* Apache Continuum, a continuous integration server which integrates tightly with Maven
* Apache Ant
* Apache Jelly, a tool for turning XML into executable code
* Apache Ivy, alternative dependency management tool for Java
* Sonatype Nexus, a repository manager commonly used with Maven
* Hudson
* List of build automation software

Liên kết ngoài
--------------

* Official Maven project website
* The Maven 2 tutorial: A practical guide for Maven 2 users Lưu trữ 2007-06-23 tại Wayback Machine - tutorial at Codehaus.org Lưu trữ 2016-10-16 tại Wayback Machine
* Maven: The Definitive Guide Lưu trữ 2009-01-30 tại Wayback Machine, a printed and free online reading book.
* Building Web Applications with Maven 2 Lưu trữ 2011-07-23 tại Wayback Machine
* The Maven 2 POM demystified Lưu trữ 2011-07-18 tại Wayback Machine - article at JavaWorld
* Verify the dependencies in your POM Lưu trữ 2011-10-04 tại Wayback Machine
* Maven history
* Maven for PHP Lưu trữ 2011-07-27 tại Wayback Machine