当前位置: 首页 > news >正文

在Eclipse 中使用 Maven 创建雅加达 EE 应用程序

在本教程中,我将指导大家如何在 Eclipse 中创建新的雅加达 EE 应用程序支持 Maven。

首先,在 Eclipse 中,转到“文件”,选择“新建”,然后选择“Maven 项目”:

要使用 Maven 创建雅加达 EE 项目,我们将使用 Maven 原型和原型进行 Web 应用程序。

在上面的窗口中,我们不会选择 创建一个简单的项目 (跳过原型选择),保留默认值,然后单击 下一页 按钮。

这是允许我们选择Maven原型的窗口。雅加达EE应用程序的Maven原型称为maven-archetype-webapp,因此请选择它:

然后点击 下一页 按钮:

这是一个窗口,允许我们更改 Maven 组 ID、Maven 工件 ID、版本以及包名称的值。

我将按如下方式填充这些值:

单击“完成”以完成。

结果:

如您所见,我们的项目报告了错误。

原因是我们使用的默认 Maven 原型不会在 pom.xml 文件中声明雅加达 EE Servlet API 依赖项:

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>test</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>test</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>

所以我们需要这样做。

请打开 pom.xml 文件并添加以下依赖项:

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>

雅加达.雅加达-api.版本声明如下:

1
2
3
4
5
6
7
8
9
10
11
<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 
  <maven.compiler.source>11</maven.compiler.source>
  <maven.compiler.target>11</maven.compiler.target>
 
  <jakarta.jakartaee-api.version>9.1.0</jakarta.jakartaee-api.version>
  <junit-jupiter.version>5.8.1</junit-jupiter.version>
 
  <jetty-maven-plugin.version>11.0.6</jetty-maven-plugin.version>
</properties>

如您所见,我还使用Java 11声明,使用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>

运行我们的应用程序。

编辑后的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
<?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</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
 
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 
    <maven.compiler.source>11</maven.compiler.source>
    <maven.compiler.target>11</maven.compiler.target>
 
    <jakarta.jakartaee-api.version>9.1.0</jakarta.jakartaee-api.version>
    <junit-jupiter.version>5.8.1</junit-jupiter.version>
 
    <jetty-maven-plugin.version>11.0.6</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.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>3.3.2</version>
      </plugin>
 
      <plugin>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-maven-plugin</artifactId>
        <version>${jetty-maven-plugin.version}</version>
      </plugin>
    </plugins>
  </build>
</project>

Web.xml文件也需要编辑以匹配雅加达EE Servlet应用程序,具体如下:

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>

运行应用程序时的结果:

相关文章:

  • 112-JavaSE基础进阶:XML的创建、文档约束、文件的解析技术-Dom4J、解析案例、文件的数据检索技术-XPath
  • 计算机网络 第3 章 数据链路层
  • 如何让不给听得ge乖乖听话?python教你如何做...
  • C# Winform跨线程更新UI控件的方法
  • Linux学习 -- shell工具的复习(cut/sed/awk/sort)
  • C语言百日刷题第四天
  • C生万物 | 初识C语言【1024,从0开始】
  • 计算机网络-物理层(数据交换方式(电报交换,报文交换,分组交换),数据报,虚电路,传输介质,物理层设备(中继器,集线器))
  • 【趣学算法】第二章 算法之美(下)
  • 对话PPIO边缘云联合创始人王闻宇,聊聊边缘计算与元宇宙
  • 原生App-云打包
  • RK3399快速上手 | 03-RK3399启动流程分析
  • Opencv实战项目:13 手部追踪
  • 空间滤波-几何均值滤波器
  • 【PyTorch深度学习项目实战100例】—— 基于word2vec(CBOW)方法训练词向量 | 第61例
  • 深入了解以太坊
  • Asm.js的简单介绍
  • exports和module.exports
  • JAVA 学习IO流
  • JS笔记四:作用域、变量(函数)提升
  • JS字符串转数字方法总结
  • Meteor的表单提交:Form
  • redis学习笔记(三):列表、集合、有序集合
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • 闭包--闭包作用之保存(一)
  • 构建二叉树进行数值数组的去重及优化
  • 观察者模式实现非直接耦合
  • 聚类分析——Kmeans
  • 用jquery写贪吃蛇
  • 优秀架构师必须掌握的架构思维
  • 阿里云服务器购买完整流程
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (13)Hive调优——动态分区导致的小文件问题
  • (poj1.2.1)1970(筛选法模拟)
  • (二)JAVA使用POI操作excel
  • (二十四)Flask之flask-session组件
  • (四) 虚拟摄像头vivi体验
  • (四)Controller接口控制器详解(三)
  • (四)库存超卖案例实战——优化redis分布式锁
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • .net refrector
  • .NET导入Excel数据
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • @ComponentScan比较
  • @RequestBody与@ModelAttribute
  • [145] 二叉树的后序遍历 js
  • [2023-年度总结]凡是过往,皆为序章
  • [BZOJ 3531][Sdoi2014]旅行(树链剖分+线段树)
  • [C/C++]关于C++11中的std::move和std::forward
  • [C++] Boost智能指针——boost::scoped_ptr(使用及原理分析)
  • [Docker]十.Docker Swarm讲解
  • [Flutter]WindowsPlatform上运行遇到的问题总结
  • [Flutter]打包IPA
  • [HTML]HTML5实现可编辑表格