2 Backend Environment Setup
Goal
- Setup the development environment for the project on your local labtop/desktop
- Create and start a tomcat server on you local
- Create a web project and add it to your tomcat server.
JDK: openjdk-21
If encounter
Maven
In this project we use Maven to mange build configurations and dependencies. A pom.xml
is the manifest file for Maven. It is the configuration of how the project is compiled, with what dependencies.
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
# modelVersion 指的是 POM 的版本,这通常是 4.0.0.
# 基本信息
<groupId>com.example</groupId>
<artifactId>OnlineOrder</artifactId>
<version>1.0-SNAPSHOT</version>
<name>OnlineOrder</name>
<packaging>war</packaging>
# 这部分描述了项目的基本信息:
# groupId: 项目组的标识符,通常是公司或组织的域名反转。
# artifactId: 项目的标识符,通常是项目的名称。
# version: 项目的当前版本。
# name: 项目的展示名称。
# packaging: 打包类型,这里是 war,意味着这个项目会被打包成一个 web 应用程序归档文件。
# 属性
# 这部分定义了一些常用的属性,以便在配置文件中多次引用
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.target>11</maven.compiler.target>
<maven.compiler.source>11</maven.compiler.source>
<junit.version>5.9.2</junit.version>
</properties>
# 依赖关系这部分列出了项目所需的所有依赖关系。
# 例如,这个项目依赖于 jakarta.servlet-api 和 junit-jupiter-api
<dependencies>
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>6.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
# 构建配置
# 这部分定义了项目的构建配置,例如使用哪些插件来构建项目。在这个例子中,我们使用了 maven-war-plugin 插件,它帮助我们将项目打包成 war 文件
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
</plugin>
</plugins>
</build>
</project>
Maven 是一个流行的项目管理和自动化构建工具,主要用于 Java 项目。它帮助开发者在整个软件开发周期中进行项目的构建、依赖管理、文档生成等任务。
下面是 Maven 的一些核心特性和功能:
- 依赖管理: Maven 使用一个名为
pom.xml
的文件来描述项目信息和依赖。当你需要一个库,只需在pom.xml
中添加相应的依赖,Maven 将自动从中央仓库下载并添加到项目中。 - 生命周期和插件: Maven 定义了一系列的构建生命周期(如
compile
,test
,package
),每个生命周期阶段都与特定的任务相关联。通过插件,Maven 可以扩展这些任务。 - 项目坐标: 每个 Maven 项目和依赖都由三个主要坐标定义:
groupId
(通常代表组织或公司),artifactId
(项目名称),以及version
(项目版本)。 - 中央仓库: Maven 使用中央仓库来存储和分享公共库。这使得依赖管理变得非常简单,因为开发者不再需要手动下载和管理 JAR 文件。
- 项目模板(Archetypes): Maven 提供了项目模板功能,使得开发者可以快速开始一个新项目,如创建一个标准的 Java 应用、Web 应用等。
- 多模块项目: 对于大型项目,Maven 支持创建多模块项目,其中每个模块都有自己的
pom.xml
文件,但所有模块都可以一起构建。 - 统一的构建过程: 不论项目大小,Maven 提供了一个统一的构建流程,这使得开发者在不同的项目中都能用相同的方式进行构建。
- 其它: Maven 还有许多其他功能,如生成项目报告、文档、集成测试等。
总的来说,Maven 是 Java 开发者的一个强大工具,它简化了项目构建和依赖管理的复杂性。