Trong bài viết này, mình sẽ hướng dẫn các bạn tạo mới một ứng dụng Jakarta EE sử dụng Maven. Các bạn có thể sử dụng bất kỳ một Java IDE có hỗ trợ Maven như Eclipse, IntelliJ, .. hoặc sử dụng Maven command line đều được các bạn nhé!
Mình sẽ sử dụng Eclipse trong bài viết này.
Đầu tiên, trong Eclipse, các bạn hãy vào File, chọn New rồi chọn Maven project:
Để tạo một project Jakarta EE với Maven, chúng ta sẽ sử dụng Maven Archetype với Archetype cho web application.
Ở cửa sổ trên, chúng ta sẽ không chọn Create a simple project (skip archetype selection), để mặc định rồi nhấn nút Next nha các bạn.
Đây là cửa sổ cho phép chúng ta lựa chọn Maven Archetype. Maven Archetype cho ứng dụng Jakarta EE có tên là maven-archetype-webapp nên các bạn hãy chọn nó:
rồi nhấn nút Next nha các bạn:
Đây là cửa sổ cho phép chúng ta thay đổi các giá trị của Maven Group Id, Maven Artifact Id, Version và cả tên package nữa đó các bạn.
Mình sẽ điền các giá trị này như sau:
Nhấn nút Finish để hoàn thành nhé các bạn.
Trong quá trình tạo mới project, các bạn có thể sẽ thấy command để xác nhận các thông tin của project như sau:
Nhập “Y” để xác nhận các bạn nhé!
Kết quả của mình như sau:
Như các bạn thấy, project của chúng ta đang báo lỗi.
Nguyên nhân là vì mặc định Maven Archetype mà chúng ta đang sử dụng không khai báo dependency Jakarta EE Servlet API trong tập tin pom.xml:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
<?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>com.huongdanjava</groupId> <artifactId>jakartaee-example</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <name>test Maven Webapp</name> <!-- FIXME change it to the project's website --> <url>http://www.example.com</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> </dependencies> <build> <finalName>jakartaee-example</finalName> <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --> <plugins> <plugin> <artifactId>maven-clean-plugin</artifactId> <version>3.1.0</version> </plugin> <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging --> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>3.0.2</version> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> </plugin> <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.1</version> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <version>3.2.2</version> </plugin> <plugin> <artifactId>maven-install-plugin</artifactId> <version>2.5.2</version> </plugin> <plugin> <artifactId>maven-deploy-plugin</artifactId> <version>2.8.2</version> </plugin> </plugins> </pluginManagement> </build> </project> |
nên chúng ta cần làm điều này.
Các bạn hãy mở tập tin pom.xml rồi thêm dependency này vào nhé!
1 2 3 4 5 6 |
<dependency> <groupId>jakarta.platform</groupId> <artifactId>jakarta.jakartaee-api</artifactId> <version>${jakarta.jakartaee-api.version}</version> <scope>provided</scope> </dependency> |
với jakarta.jakartaee-api.version được khai báo như sau:
1 2 3 4 5 6 7 8 9 10 11 |
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>21</maven.compiler.source> <maven.compiler.target>21</maven.compiler.target> <jakarta.jakartaee-api.version>10.0.0</jakarta.jakartaee-api.version> <junit-jupiter.version>5.10.2</junit-jupiter.version> <jetty-maven-plugin.version>11.0.20</jetty-maven-plugin.version> </properties> |
Như các bạn thấy, mình cũng đã khai báo sử dụng Java 21, JUnit 5:
1 2 3 4 5 6 |
<dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter</artifactId> <version>${junit-jupiter.version}</version> <scope>test</scope> </dependency> |
1 2 3 4 5 |
<plugin> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>${jetty-maven-plugin.version}</version> </plugin> |
để chạy ứng dụng của chúng ta.
Nội dung tập tin pom.xml sau khi chỉnh sửa của mình như sau:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
<?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>com.huongdanjava</groupId> <artifactId>jakartaee-example</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>21</maven.compiler.source> <maven.compiler.target>21</maven.compiler.target> <jakarta.jakartaee-api.version>10.0.0</jakarta.jakartaee-api.version> <junit-jupiter.version>5.10.2</junit-jupiter.version> <jetty-maven-plugin.version>11.0.20</jetty-maven-plugin.version> </properties> <dependencies> <dependency> <groupId>jakarta.platform</groupId> <artifactId>jakarta.jakartaee-api</artifactId> <version>${jakarta.jakartaee-api.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter</artifactId> <version>${junit-jupiter.version}</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>${jetty-maven-plugin.version}</version> </plugin> </plugins> </build> </project> |
Tập tin web.xml cũng cần phải chỉnh sửa lại cho phù hợp với ứng dụng Jakarta EE Servlet, cụ thể như sau:
1 2 3 4 5 6 7 |
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="https://jakarta.ee/xml/ns/jakartaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd" version="5.0"> </web-app> |
Kết quả khi chạy ứng dụng: