JavaRush /Blog Java /Random-VI /Phần 4: Khái niệm cơ bản về Maven

Phần 4: Khái niệm 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à công cụ quản lý và xây dựng dự án - trợ thủ đắc lực cho lập trình viên Java. Nó giúp nhà phát triển dễ dàng hơn ở mọi giai đoạn công 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 đến triển khai sản phẩm trên máy chủ. Khi làm việc với bất kỳ framework nào, bạn sẽ phải sử dụng Maven. Vì vậy, hôm nay chúng ta hãy xem xét các chức năng chính của nó và xem chúng nên được sử dụng như thế nào.

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

  1. Trước tiên, bạn cần cài đặt Maven bằng cách tải xuống từ liên kết này .

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

  3. Để kiểm tra xem mọi thứ đã được cài đặt chưa, hãy viết vào 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ị, bạn đã sẵn sàng sử dụng.

  5. Bây giờ hãy mở IntelliJIDEA 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ấn Next và điền vào hộp thoại sau:

    Phần 4. Cơ bản về Maven - 3
  7. Tiếp theo, tạo một dự án ở vị trí được yêu cầu theo tiêu chuẩn.

    Sau khi dự án được tạo, hãy chú ý đến 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 cho dự án Maven :
  • thư mục src/main/java chứa các lớp java;
  • trong src/main/resources - tài nguyên mà ứng dụng của chúng tôi sử dụng (trang HTML, hình ảnh, biểu định kiểu, v.v.);
  • src/test - để kiểm tra.
Ngoài ra, hãy chú ý đến tệp có tên pom.xml . Đây là file chính để quản lý Maven . Toàn bộ mô tả dự án được chứa ở đây. Hiện chưa có quá nhiều thông tin nhưng chúng tôi sẽ bổ sung ngay bây giờ.

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

Bạn có thể đã từng gặp cụm từ “người quản lý phụ thuộc” hoặc “người quản lý phụ thuộc”. Maven có thể làm tất cả. Nhờ Maven, bạn không cần 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: chỉ cần thêm thư viện được yêu cầu vào danh sách phụ thuộc của Maven. Các phần phụ thuộc được viết trong nút XML phụ thuộc. Giả sử bạn cần thư viện Apache Commons IO trong dự án của mình để đơn giản hóa công việc với các tệp. Để thêm thư viện, hãy viết năm dòng trong pom.xml:
<dependency>
   <groupId>commons-io</groupId>
   <artifactId>commons-io</artifactId>
   <version>2.6</version>
</dependency>
Pom.xml của bạn bây giờ 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ần phụ thuộc tiếp theo cũng phải được viết bên trong thẻ <dependency>. Bạn có thể thắc mắc: làm cách nào để biết bạn cần đưa thông tin gì về thư viện bên trong thẻ <dependency>? Mọi thứ đều đơn giản ở đây. Trong những trường hợp như vậy, ba tham số luôn được chỉ định: groupId, ArtifactId và version. Bạn có thể tìm hiểu các thông số này theo hai cách:
  1. Trên trang web thư viện. Nếu chúng tôi cần Apache Commons IO, hãy 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 nó vào phần phụ thuộc của chúng tôi.

  2. Trong kho lưu trữ Maven . Nhập “apache commons io” vào 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 cái bạn cần, chỉ cần sao chép:

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

    và thêm vào pom.xml của bạn.

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

Điều đáng nói lại là kho lưu trữ Maven, bởi vì chúng tôi thực sự có hai trong số chúng - bên ngoài (toàn cầu) và cục bộ, trên máy tính của bạn. Tất 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ần phụ thuộc cần thiết vào một dự án, trước tiên, Maven sẽ kiểm tra kho lưu trữ cục bộ để biết sự hiện diện của thư viện đó và chỉ khi không tìm thấy nó ở đó, nó mới chuyển sang kho lưu trữ bên ngoài. Như bạn có thể thấy, bạn có thể sử dụng Maven để thêm các phần phụ thuộc, nhưng đó không phải là tất cả những gì nó có thể làm.

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

Tính năng này có vẻ vô nghĩa đối với người mới. Tại sao điều này lại cần thiết nếu có IDE? Nhưng không! Thứ nhất, máy chủ mà bạn sẽ phải xây dựng ứng dụng trên đó không những không có môi trường phát triển mà còn có giao diện đồ họa. Thứ hai, trong các dự án lớn, Maven xử lý tốt hơn các nhiệm vụ lắp ráp dự án. Vì vậy, chúng ta đừng dày vò bản thân với việc chờ đợi mà hãy 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 một 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>example>Lifecycle ở 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 tất cả thông tin có sẵn để xây dựng dự án hay không;
  3. biên dịch - các tệp có mã nguồn được biên dịch;
  4. kiểm tra - các bài kiểm tra được đưa ra;
  5. gói - các tệp đã biên dịch được đóng gói (vào kho lưu trữ jar, war, v.v.);
  6. xác minh - việc kiểm tra được thực hiện để xác nhận tính sẵn sàng của tệp được đóng gói;
  7. cài đặt - gói được đặt trong kho lưu trữ cục bộ. Bây giờ nó có thể được các dự án khác sử dụng như một thư viện bên ngoài;
  8. trang web - tài liệu dự án được tạo;
  9. triển khai - kho lưu trữ đã thu thập được sao chép vào kho lưu trữ từ xa.
Tất cả các giai đoạn được thực hiện tuần tự: bạn không thể bắt đầu giai đoạn thứ tư 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 gói được khởi chạy, các giai đoạn xác thực, biên dịch và kiểm tra sẽ được thực hiện. Ngoại lệ là giai đoạn sạch. Nên gọi nó trước mỗi lần xây dựng dự án mới. Các giai đoạn có thể được liệt kê cách nhau bằng dấu cách:

    gói sạch mvn.

Ngoài ra, mỗi giai đoạn đều có các giai đoạn trước và sau: ví dụ: trước triển khai, sau triển khai, làm sạch trước, làm sạch sau, nhưng chúng khá hiếm khi được sử dụng. Ngoài ra, mỗi giai đoạn đều có mục tiêu. Các mục tiêu tiêu chuẩn được bao gồm 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 số giai đoạn, bạn cần thực hiện chức năng bổ sung. Có các plugin Maven cho việc này. Danh sách các plugin chính thức có thể được tìm thấy trên trang web Maven . Nhưng hãy biết rằng vẫn còn nhiều plugin tùy chỉnh có thể tìm thấy trên tài nguyên của bên thứ ba. Tất nhiên, nếu có nhu cầu đặc biệt nào đó, bạn luôn có cơ hội tự mình viết một plugin như vậy .

bổ sung

Để thêm plugin Maven vào dự án, mô tả của nó, tương tự như phần phụ thuộc, phải được đặt trong pom.xml trong thẻ <build> và <plugins>. Ví dụ: chúng tôi cần một plugin để kiểm tra xem tất cả thư viện bên ngoài của chúng tôi có đang sử dụng phiên bản mới nhất hay không. Sau một hồi tìm kiếm trên Internet, bạn có thể tìm thấy plugin này kèm theo hướng dẫn sử dụng. Hãy đặt groupId, ArtifactId và phiên bản của nó. Hãy viết ra những mục tiêu anh ta phải hoàn thành và trong giai đoạn nào. Trong trường hợp của chúng tôi, việc kiểm tra phần phụ thuộc trong pom.xml hiện tại được đặt thành giai đoạn xác thực. Bây giờ “bộ nhớ” của chúng ta 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 vẫn có thể tiếp tục thực hiện dự án của mình. Nhưng hãy thử thay đổi phiên bản Apache Commons IO thành 2.0 và bắt đầu xây dựng dự án. Chúng tôi 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 gặp lỗi xây dựng do plugin gây 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 có phiên bản 2.6. Nói chung, Maven là một công cụ rất hữu ích. Ban đầu nó 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ả. Bài viết này cố tình bỏ qua 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ưng không có giới hạn cho sự hoàn hảo: bạn có thể đọc thêm về Maven trên trang web chính thức của sản phẩm . Phần 5. Servlet. Viết một ứng dụng web đơn giản Phần 6. Thùng chứa Servlet Phần 7. Giới thiệu mẫu MVC (Model-View-Controller) Phần 8. Viết một ứng dụng spring-boot nhỏ
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION