Dự án Mô tả Đối tượng Mô hình

Một trong những điều mà Maven chuẩn hóa ngay từ đầu là mô tả dự án. Trước Maven, mỗi IDE có tệp dự án riêng, lưu trữ thông tin về dự án và tập hợp của nó (và thường ở dạng nhị phân).

Maven đã đưa ra một tiêu chuẩn mở, phổ biến, dựa trên XML, mô tả dự án là gì, dự án nên được xây dựng như thế nào và dự án có những phụ thuộc nào bằng cách sử dụng các thẻ khác nhau. Mô tả dự án được chứa trong một tệp duy nhất, thường được đặt tên là pom.xml .

Một tệp pom.xml ví dụ :

<?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>
        </phụ thuộc>
   </phụ thuộc>


</dự án>

Ví dụ này có ba điều được viết:

  • Thông tin về phiên bản của tiêu chuẩn dự án maven có màu xanh lam.
  • Thông tin về dự án có màu đỏ.
  • Thông tin về các thư viện được sử dụng có màu xanh lục.

Chúng ta hãy xem xét kỹ hơn thiết bị tập tin pom.

Cấu trúc dự án Maven

Và ngay lập tức câu hỏi đặt ra là: bạn có chú ý đến sự kỳ lạ trong ví dụ vừa rồi không? Nó không chứa thông tin về mã dự án! Không có từ nào về nơi lưu trữ các tệp java, tài nguyên, tệp thuộc tính, html, tập lệnh xây dựng và những thứ tương tự.

Và câu trả lời rất đơn giản - Maven đã chuẩn hóa thiết kế của dự án. Có một số tùy chọn để tổ chức mã trong một dự án và phổ biến nhất là:

Cấu trúc hơi khác thường sau các dự án IDEA tiêu chuẩn, nhưng đối với điều đó thì nó là phổ biến. 90% dự án bạn sẽ gặp trong đời sẽ có cấu trúc thư mục này .

Nếu bạn tạo một dự án Maven (sử dụng IDEA hoặc sử dụng bảng điều khiển), thì nó sẽ có dạng được chỉ định. Hãy xem làm thế nào tất cả hoạt động ở đây.

Thư mục src chứa mã nguồn của dự án. Nó có hai thư mục con: chínhthử nghiệm .

Thư mục /src/main/java là gốc cho tất cả các lớp Java trong dự án. Nếu bạn có một lớp com.codegym.Cat thì nó sẽ nằm trong thư mục /src/main/java /com/codegym /Cat.java . Nếu có tài nguyên văn bản hoặc nhị phân, chúng phải được lưu trữ trong thư mục /src/main/resources .

Cấu trúc của thư mục /src/test tương tự như cấu trúc của thư mục /src/main nhưng chứa các bài kiểm tra và tài nguyên của chúng. Bản thân Maven biết cách chạy các bài kiểm tra cần thiết khi xây dựng một dự án, nhưng chúng ta sẽ nói về điều này trong một bài giảng riêng.

Ngoài ra còn có một thư mục / target trong dự án , nơi Maven sẽ lưu dự án sau khi nó được xây dựng. Vì các dự án lớn thường có các tập lệnh xây dựng không tầm thường nên không có gì được lưu trữ trong thư mục này.

Mục đích thứ hai của thư mục / target là lưu vào bộ nhớ đệm các kết quả bản dựng trung gian. Khi xây dựng một dự án lớn, Maven chỉ có thể xây dựng lại phần đã thay đổi của dự án đó, do đó, thời gian xây dựng sẽ tăng lên nhiều lần.

Chà, như một quả anh đào trên chiếc bánh - gốc rễ của dự án là tệp pom.xml. Nó chứa tất cả các thông tin cần thiết về dự án mà chúng ta sẽ thảo luận dưới đây.

Thiết bị pom.xml

Để bắt đầu, tệp pom là xml, vì vậy nó chứa thông tin tiêu đề và không gian tên tiêu chuẩn. Đây là tất cả về tiêu chuẩn XML thuần túy, vì vậy chúng tôi sẽ không nói chi tiết về nó. Nó có nghĩa là:

<?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">

        …

</dự án>

Ngoài ra, thông thường dòng đầu tiên bên trong thẻ <project> là mô tả về phiên bản của tiêu chuẩn tệp pom. Hầu như luôn luôn là 4.0. Điều này cũng không được chúng tôi quan tâm.

Những dòng đầu tiên chúng tôi quan tâm trông như thế này:

  <modelVersion>4.0.0</modelVersion>

  <groupId>com.sample.app</groupId>
  <artifactId>ứng dụng mới</artifactId>
  <version>1.0-SNAPSHOT</version>

Để không hiểu một lần nữa những gì chúng tôi mô tả (chương trình, dự án, mô-đun, thư viện, v.v.) trong tiêu chuẩn Maven, tất cả điều này được gọi là tạo tác từ . Điều bạn không thể từ chối những người tạo ra Maven là tình yêu tiêu chuẩn hóa.

Ba thẻ bạn thấy có nghĩa là:

  • groupId - gói mà ứng dụng thuộc về, có thêm tên miền;
  • artifactId – khóa chuỗi duy nhất (id dự án);
  • phiên bản - phiên bản của dự án.

Ba tham số này đủ để mô tả rõ ràng bất kỳ hiện vật nào .

Hơn nữa, sau phần mô tả dự án, thường có một danh sách các tạo phẩm (thư viện) mà dự án sử dụng. Nó trông giống như thế này:

   <dependencies>

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

   </dependencies>

Trong ví dụ này, chúng tôi thêm thư viện commons-io từ gói commons-io, phiên bản 2.6, vào dự án của chúng tôi.

Khi xây dựng, Maven sẽ tìm một thư viện như vậy trong kho lưu trữ toàn cầu của nó và thêm nó vào dự án của bạn. Và nhân tiện, không chỉ Maven mới có thể làm được điều này.

Cách IDEA hoạt động với Maven

Intellij IDEA rất tuyệt khi làm việc với Maven. Cô ấy biết cách mở các dự án như vậy, tự tạo chúng, chạy các tập lệnh xây dựng khác nhau và hoàn toàn hiểu các thư viện đi kèm.

Nó thậm chí còn có Maven tích hợp sẵn trong một thời gian, nhưng bạn vẫn cần có khả năng tự cài đặt và định cấu hình nó, vì vậy tính năng này của IDEA đã không được đề cập trước đó. Về lý thuyết, IDEA có thể có xung đột giữa hai Nhà thông thái, vì vậy thật tốt khi bạn biết rằng có hai Nhà thông thái.

Cách tạo một dự án Maven mới trong IDEA:

Nhấp vào menu Tệp > Dự án mới. Chọn mục menu Dự án mới ở bên trái .

dự án maven

Hãy làm rõ một số điểm:

  1. Tên dự án;
  2. Thư mục cho dự án;
  3. Ngôn ngữ dự án là Java;
  4. Loại dự án là Maven.

Trong phần Cài đặt nâng cao ở dưới cùng, IDEA sẽ nhắc bạn chỉ định goupID, artifactID và phiên bản của dự án mới của chúng ta. Dữ liệu này luôn có thể dễ dàng thay đổi sau này. Chọn từ những gợi ý hoặc nhập của riêng bạn:

Dự án maven 2

Tiếp theo, tiêu chuẩn tạo một dự án ở vị trí cần thiết. Kết quả là, chúng ta thấy cấu trúc:

Dự án maven 3

Các lớp và gói phải được tạo trong thư mục java, chúng tôi đã nói về điều này. Và tôi nghĩ rằng bạn có thể dễ dàng xử lý nó. Chúng ta đã sẵn sàng để tiếp tục, nhưng hãy quay lại một chút, về một vấn đề quan trọng mà chúng ta đã "bỏ qua" một chút.