CodeGym /Blog Java /Ngẫu nhiên /Phần 4. Cơ bản về Maven
John Squirrels
Mức độ
San Francisco

Phần 4. Cơ bản về Maven

Xuất bản trong nhóm
Tài liệu này là một phần của loạt bài "Giới thiệu về Phát triển Doanh nghiệp". Các bài viết trước: Phần 4. Cơ bản về Maven - 1Maven là một công cụ để quản lý và xây dựng dự án — một trợ lý hữu ích của lập trình viên Java. Nó làm cho cuộc sống của các nhà phát triển dễ dàng hơn ở mọi giai đoạn làm việc: từ tạo cấu trúc dự án và kết nối các thư viện cần thiết để triển khai sản phẩm trên máy chủ. Bạn sẽ phải sử dụng Maven khi làm việc với bất kỳ khung nào. Vì vậy, hôm nay chúng ta hãy xem các chức năng chính của nó và xem cách sử dụng chúng.

Từng bước cài đặt Maven

  1. Đầu tiên, chúng ta cần cài đặt Maven. Tải xuống từ liên kết này .

  2. Tiếp theo, giải nén tệp lưu trữ đã tải xuống và đặt biến môi trường M2_HOME thành vị trí của tệp lưu trữ đã giải nén. Ví dụ: C:\\Program Files\\maven\\

  3. Để đảm bảo rằng mọi thứ đã được cài đặt, hãy thực hiện thao tác sau trên dòng lệnh:

    phiên bản mvn

  4. Nếu thông tin phiên bản cho Maven, Java, v.v. được hiển thị, thì mọi thứ đã sẵn sàng hoạt động.

  5. Bây giờ hãy mở IntelliJ IDEA và tạo một dự án mới. Trong cửa sổ đầu tiên, chọn Maven:

    Phần 4. Cơ bản về Maven - 2
  6. Nhấp vào "Tiếp theo" và điền vào cửa sổ xuất hiện:

    Phần 4. Cơ bản về Maven - 3
  7. Sau đó, như thường lệ, hãy tạo một dự án ở bất cứ đâu bạn muốn.

    Sau khi dự án đã được tạo, hãy lưu ý cấu trúc của nó:

    Phần 4. Cơ bản về Maven - 4
Đây là cấu trúc tiêu chuẩn của một dự án Maven :
  • thư mục src/main/java chứa các lớp Java
  • thư mục src/main/resource chứa các tài nguyên được ứng dụng sử dụng (trang HTML, hình ảnh, biểu định kiểu, v.v.)
  • thư mục src/test dành cho các bài kiểm tra
Ngoài ra, hãy chú ý đến tệp có tên pom.xml . Đây là tệp chính để quản lý Maven . Toàn bộ mô tả dự án được chứa ở đây. Không có quá nhiều thông tin vào lúc này, nhưng chúng tôi sẽ thêm nó ngay bây giờ.

Quản lý các phụ thuộc trong Maven

Bạn có thể đã bắt gặp cụm từ "người quản lý phụ thuộc". Maven biết cách quản lý các phụ thuộc. Nhờ có Maven, bạn không phải mất nhiều thời gian tìm kiếm thư viện cần thiết trên Internet, tải xuống và sau đó kết nối nó với dự án của mình. Thay vào đó, bạn chỉ cần thêm thư viện cần thiết vào danh sách phụ thuộc trong Maven.

Các phụ thuộc được chỉ định trong nút phụ thuộc của tệp pom.xml

Giả sử bạn cần thư viện Apache Commons IO trong dự án của mình để đơn giản hóa việc làm việc với các tệp. Để thêm thư viện, chúng tôi viết năm dòng trong tệp pom.xml:

<dependency>
   <groupId>commons-io</groupId>
   <artifactId>commons-io</artifactId>
   <version>2.6</version>
</dependency>
Bây giờ tệp pom.xml của bạn sẽ trông như thế này:

  <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>example.com</groupId>
   <artifactId>example</artifactId>
   <version>1.0-SNAPSHOT</version>

   <dependencies>
       <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
           <version>2.6</version>
       </dependency>
   </dependencies>
</project>
Sau đó, cho phép IntelliJ IDEA nhập phần phụ thuộc (một hộp thoại sẽ xuất hiện ở góc dưới bên phải). Bây giờ thư viện đã sẵn sàng để sử dụng:

import org.apache.commons.io.FileUtils;

import java.io.File;

public class TestMaven {
   public static void main(String[] args) {
       File tempDirectory = FileUtils.getTempDirectory();
   }
}
Tất cả các phụ thuộc tiếp theo cũng phải được viết bên trong <dependencies>thẻ. Bạn có thể tự hỏi làm thế nào để tìm hiểu thông tin về thư viện mà bạn cần chỉ ra bên trong thẻ <dependency>. Điều đó thật dễ dàng. Ba tham số luôn cần được đặt: "groupId", "artifactId" và "version". Có hai cách để xác định các thông số này:
  1. Trên trang web của thư viện. Nếu chúng tôi cần thư viện Apache Commons IO, chúng tôi truy cập trang web chính thức và chọn tab "Thông tin phụ thuộc". Tất cả thông tin cần thiết đều có ở đây — bạn chỉ cần sao chép và thêm vào nút <dependencies>.

  2. Trong kho lưu trữ Maven . Nhập "apache commons io" vào thanh tìm kiếm và bạn sẽ thấy tất cả các phiên bản có sẵn của thư viện. Sau khi chọn đúng, chỉ cần sao chép như sau:

    
    <dependency>
               <groupId>commons-io</groupId>
               <artifactId>commons-io</artifactId>
               <version>2.6</version>
           </dependency>
    

    và thêm nó vào tệp pom.xml của bạn.

Các loại kho lưu trữ Maven

Thật đáng để chúng tôi đề cập đến các kho lưu trữ Maven một lần nữa, bởi vì chúng tôi thực sự có hai kho lưu trữ: kho lưu trữ từ xa (trung tâm) và kho lưu trữ cục bộ (trên máy tính của bạn). Tất cả các thư viện mà bạn thêm vào dự án của mình đều được lưu trong kho lưu trữ cục bộ. Khi Maven thêm một phụ thuộc bắt buộc vào một dự án, trước tiên, Maven sẽ kiểm tra xem thư viện đã tồn tại trong kho lưu trữ cục bộ chưa. Nó chỉ truy cập kho lưu trữ từ xa nếu nó không tìm thấy thư viện cục bộ. Như bạn có thể thấy, bạn có thể sử dụng Maven để thêm các phụ thuộc, nhưng đây không phải là tất cả những gì nó có thể làm.

Xây dựng dự án Java bằng Maven

Khả năng này có vẻ vô nghĩa đối với người mới bắt đầu. Tại sao chúng ta cần điều này nếu chúng ta có một IDE? Hãy để tôi giải thích. Đầu tiên, máy chủ mà bạn phải xây dựng ứng dụng của mình có thể không có môi trường phát triển cũng như giao diện đồ họa. Thứ hai, đối với các dự án lớn, Maven thực hiện công việc xây dựng dự án tốt hơn. Vì vậy, không cần phải quảng cáo thêm, chúng tôi sẽ xem xét quá trình xây dựng một ứng dụng bằng Maven.

giai đoạn

Quá trình xây dựng một ứng dụng được gọi là vòng đời của dự án Maven và nó bao gồm các giai đoạn. Bạn có thể xem chúng trong IDEA bằng cách nhấp vào Maven > ví dụ > Vòng đời ở góc trên bên phải: Phần 4. Cơ bản về Maven - 5Như bạn có thể thấy, có 9 giai đoạn:
  1. dọn dẹp - xóa tất cả các tệp đã biên dịch khỏi thư mục đích (nơi lưu các tạo phẩm đã hoàn thành)
  2. xác thực - kiểm tra xem có tất cả thông tin cần thiết để xây dựng dự án hay không
  3. biên dịch - biên dịch các tệp mã nguồn
  4. kiểm tra - bắt đầu kiểm tra
  5. gói - gói các tệp đã biên dịch (trong kho lưu trữ JAR, WAR, v.v.)
  6. xác minh - kiểm tra xem tệp được đóng gói đã sẵn sàng chưa
  7. cài đặt - đặt gói vào kho lưu trữ cục bộ. Bây giờ nó có thể được sử dụng bởi các dự án khác như một thư viện bên ngoài
  8. trang web - tạo tài liệu dự án
  9. triển khai - sao chép kho lưu trữ đã xây dựng vào kho lưu trữ từ xa
Tất cả các giai đoạn được thực hiện tuần tự: ví dụ: giai đoạn thứ tư không thể bắt đầu cho đến khi hoàn thành giai đoạn 1-3. Có hai cách để bắt đầu một giai đoạn:
  • thông qua dòng lệnh:

    gói mvn

    Phần 4. Cơ bản về Maven - 6
  • sử dụng IntelliJ IDEA:

    Phần 4. Cơ bản về Maven - 7

    Trước khi giai đoạn đóng gói bắt đầu, các giai đoạn xác thực, biên dịch và kiểm tra được thực hiện. Giai đoạn sạch là một ngoại lệ. Bạn nên chạy giai đoạn này trước mỗi lần xây dựng dự án. Bạn có thể liệt kê nhiều giai đoạn, phân tách chúng bằng dấu cách:

    gói sạch mvn.

Ngoài ra, mỗi giai đoạn có các giai đoạn trước và sau: ví dụ: triển khai trước, triển khai sau, làm sạch trước, làm sạch sau, v.v. nhưng chúng hiếm khi được sử dụng. Ngoài ra, mỗi pha đều có bàn thắng. Các mục tiêu tiêu chuẩn được đặt theo mặc định. Các mục tiêu bổ sung được bổ sung bởi các plugin Maven. Đôi khi trong một giai đoạn, bạn có thể cần thực hiện các chức năng bổ sung. Có các plugin Maven cho việc này. Bạn có thể tìm thấy danh sách các plugin chính thức trên trang web Maven . Nhưng bạn nên biết rằng có rất nhiều plugin tùy chỉnh có thể tìm thấy trên các trang web của bên thứ ba. Và tất nhiên, nếu một số nhu cầu kỳ lạ phát sinh, bạn luôn có thể tự viết một trình cắm tùy chỉnh .

bổ sung

Để thêm một plugin Maven vào dự án, chúng tôi cần thêm mô tả của nó vào tệp pom.xml, sử dụng <build><plugins>các thẻ, tương tự như cách chúng tôi đã thêm các phụ thuộc. Ví dụ: giả sử chúng tôi cần một plugin để xác minh rằng chúng tôi đang sử dụng phiên bản mới nhất của tất cả các thư viện bên ngoài. Sau một chút tìm kiếm trên Internet, bạn có thể tìm thấy plugin này và hướng dẫn về cách sử dụng nó. Hãy đặt groupId, artifactId và phiên bản. Chúng tôi sẽ chỉ ra những mục tiêu mà plugin phải hoàn thành và ở giai đoạn nào. Trong trường hợp của chúng tôi, việc kiểm tra tính phụ thuộc trong tệp pom.xml hiện tại được thiết lập để diễn ra trong giai đoạn xác thực. Bây giờ tệp pom.xml của chúng tôi trông như thế này:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>example.com</groupId>
   <artifactId>example</artifactId>
   <version>1.0-SNAPSHOT</version>

   <build>
       <plugins>
           <plugin>
               <groupId>com.soebes.maven.plugins</groupId>
               <artifactId>uptodate-maven-plugin</artifactId>
               <version>0.2.0</version>
               <executions>
                   <execution>
                       <goals>
                           <goal>dependency</goal>
                       </goals>
                       <phase>validate</phase>
                   </execution>
               </executions>
           </plugin>
       </plugins>
   </build>

   <dependencies>
       <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
           <version>2.6</version>
       </dependency>
   </dependencies>
</project>
Chúng tôi có thể tiếp tục làm việc trên dự án của chúng tôi. Nhưng hãy thử thay đổi phiên bản Apache Commons IO thành 2.0 và xây dựng dự án. chúng tôi sẽ nhận được

[ERROR] Failed to execute goal com.soebes.maven.plugins:uptodate-maven-plugin:0.2.0:dependency (default) on project example: There is a more up-to-date version ( 2.6 ) of the dependency commons-io:commons-io:2.0 available. -> [Help 1]
Ở đây chúng tôi có một lỗi xây dựng do plugin tạo ra. Thông báo lỗi cho biết chúng tôi đang sử dụng phiên bản 2.0 khi phiên bản 2.6 khả dụng. Về cơ bản, Maven là một công cụ rất hữu ích. Có lẽ ban đầu sẽ có vẻ khó sử dụng, nhưng hãy thực hành! Tạo các dự án của bạn bằng Maven và sau một thời gian, bạn sẽ rất hài lòng với kết quả cuối cùng. Bài viết này đã cố tình bỏ qua rất nhiều chi tiết về Maven — chúng tôi tập trung vào những điều cần thiết nhất. Nhưng không có giới hạn để cải thiện: bạn có thể đọc thêm về Maven trên trang web chính thức của nó . Phần 5. Servlet và Java Servlet API. Viết một ứng dụng web đơn giản Phần 6. Bộ chứa Servlet Phần 7. Giới thiệu mẫu MVC (Model-View-Controller)
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION