基于 IDEA 创建 Maven 工程

1. 概念梳理Maven工程的GAVP

Maven工程相对之前的项目,多出一组gavp属性,gav(表示当前工程的坐标)需要我们在创建项目的时候指定,p(表示打包方式)有默认值(默认为 jar 包,因此在 java 中无无需单独设置),我们先行了解下这组属性的含义:

Maven 中的 GAVP 是指 GroupId、ArtifactId、Version、Packaging 等四个属性的缩写,其中前三个是必要的,而 Packaging 属性为可选项。这四个属性主要为每个项目在maven仓库中做一个标识,类似人的姓-名!有了具体标识,方便后期项目之间相互引用依赖等!

maven 是一个依赖管理工具,之前在使用 jar 包时,需要设置 jar 包的坐标,思考,为什么 maven 也需要设置坐标呢?之前是因为别人写好的 jar 包,我们需要有这个坐标才行,当前在 Jave 工程中打成的 jar 包,那不就是我们自己的 jar 包吗?我们在 maven 工程中要想使用我们自己的 jar 包也需要有坐标

GAV遵循一下规则:

​ 1) GroupID 格式:com.{公司/BU }.业务线.[子业务线],最多 4 级。

​ 说明:{公司/BU} 例如:alibaba/taobao/tmall/aliexpress 等 BU 一级;子业务线可选。

​ 正例:com.taobao.tddl 或 com.alibaba.sourcing.multilang

​ 2) ArtifactID 格式:产品线名-模块名。语义不重复不遗漏,先到仓库中心去查证一下。

​ 正例:tc-client / uic-api / tair-tool / bookstore

​ 3) Version版本号格式推荐:主版本号.次版本号.修订号

​ 1) 主版本号:当做了不兼容的 API 修改,或者增加了能改变产品方向的新功能。

​ 2) 次版本号:当做了向下兼容的功能性新增(新增类、接口等)。

​ 3) 修订号:修复 bug,没有修改方法签名的功能加强,保持 API 兼容性。

​ 例如: 初始→1.0.0 修改bug → 1.0.1 功能调整 → 1.1.1等

Packaging定义规则:

​ 指示将项目打包为什么类型的文件,idea根据packaging值,识别maven项目类型!

​ packaging 属性为 jar(默认值),代表普通的Java工程,打包以后是.jar结尾的文件。

​ packaging 属性为 war,代表Java的web工程,打包以后.war结尾的文件。

​ packaging 属性为 pom,代表不会打包,用来做继承的父工程。

2. Idea 构建 Maven Java SE 工程

首先注意设置项目的 SDK ,选择对应的 JDK 版本,每个新项目通常都无
基于 IDEA 创建 Maven 工程_第1张图片

注意: 此处省略了version,直接给了一个默认值:1.0-SNAPSHOT

自己后期可以在项目中随意修改!
基于 IDEA 创建 Maven 工程_第2张图片

创建工程之后,若第一次使用maven,或者使用的是新的本地仓库,idea右下角会出现以下进度条,表示maven正在下载相关插件,等待下载完毕,进度条消失即可

在这里插入图片描述

验证maven工程是否创建成功,当创建完毕maven工程之后,idea中会自动打开Maven视图,如下图:

基于 IDEA 创建 Maven 工程_第3张图片

3. Idea 构建Maven Java Web工程

3.1 手动创建

3.1.1 创建一个 maven 的 javase 工程

新建的 maven module 文件 src 下面有 main 有 test 两个文件,main 下面有 jave 和 resources,test 下面有 java ,注意这个结构是不能改的,这是 maven 工程默认的结构,规定的结构。

main 里面放的是核心程序,test 里面放的是测试程序。以后一定要把对应的内容放入到对应的文件中,这是规定。
基于 IDEA 创建 Maven 工程_第4张图片

A. pom.xml 是 maven 的核心配置文件

基于 IDEA 创建 Maven 工程_第5张图片

B. 修改pom.xml文件打包方式

基于 IDEA 创建 Maven 工程_第6张图片

修改位置:项目下/pom.xml

<groupId>com.atguigugroupId>
<artifactId>maven_webartifactId>
<version>1.0-SNAPSHOTversion>

<packaging>warpackaging>

3.1.4 增加其他 jar bar

网站: https://mvnrepository.com/
基于 IDEA 创建 Maven 工程_第7张图片

直接搜索想要增加的 jar 包,这里以 junit 为例:
基于 IDEA 创建 Maven 工程_第8张图片

随便选择一个版本
基于 IDEA 创建 Maven 工程_第9张图片

这里就是 jar 包的所有信息,复制
基于 IDEA 创建 Maven 工程_第10张图片

粘贴到 pom.xml 文件中,放到 dependencies 标签中

基于 IDEA 创建 Maven 工程_第11张图片
基于 IDEA 创建 Maven 工程_第12张图片

3.1.2 创建一个 maven 的 web 工程(web 工程主要是部署到 Tomcat 中)

基于 IDEA 创建 Maven 工程_第13张图片

这里可以看到我们创建的每个工程
基于 IDEA 创建 Maven 工程_第14张图片

java 工程和 web 工程实际上只差一个 web 模块,我们只需要将 java 工程增加一个 web 模块就可以转化为 web 工程

第一种方式手动添加 web 模块

基于 IDEA 创建 Maven 工程_第15张图片

第二种方式,将工程的打包方式设置为 war
基于 IDEA 创建 Maven 工程_第16张图片

基于 IDEA 创建 Maven 工程_第17张图片

A. 设置 web 资源路径和 web.xml 路径

点击 File–>Project Structure

当创建好 web.xml 的路径后,下面 web 资源的路径会自动创建好,所以只需要设置好 web.xml 的路径即可

基于 IDEA 创建 Maven 工程_第18张图片基于 IDEA 创建 Maven 工程_第19张图片
基于 IDEA 创建 Maven 工程_第20张图片

注意,webapp 是在 main 下面的, web.xml 是在 WEB-INF 下面的,所在在添加 web.xml 的路径时,要放在 src\main\webapp 下
基于 IDEA 创建 Maven 工程_第21张图片

B 刷新和校验

基于 IDEA 创建 Maven 工程_第22张图片
基于 IDEA 创建 Maven 工程_第23张图片

3.2 插件创建

3.2.1 安装插件 JBLJavaToWeb

file / settings / plugins / marketplace
基于 IDEA 创建 Maven 工程_第24张图片

  1. 创建一个javasemaven工程
  2. 右键、使用插件快速补全web项目
    基于 IDEA 创建 Maven 工程_第25张图片

3.3 直接新建 module 时创建

基于 IDEA 创建 Maven 工程_第26张图片

4. 将 maven 的 web 工程部署到 Tomcat 上

视频地址,需要先下载 Tomcat

5. Maven工程项目结构说明

Maven 是一个强大的构建工具,它提供一种标准化的项目结构,可以帮助开发者更容易地管理项目的依赖、构建、测试和发布等任务。以下是 Maven Web 程序的文件结构及每个文件的作用:

|-- pom.xml                               # Maven 项目管理文件 
|-- src
    |-- main                              # 项目主要代码
    |   |-- java                          # Java 源代码目录
    |   |   `-- com/example/myapp         # 开发者代码主目录
    |   |       |-- controller            # 存放 Controller 层代码的目录
    |   |       |-- service               # 存放 Service 层代码的目录
    |   |       |-- dao                   # 存放 DAO 层代码的目录
    |   |       `-- model                 # 存放数据模型的目录
    |   |-- resources                     # 资源目录,存放配置文件、静态资源等
    |   |   |-- log4j.properties          # 日志配置文件
    |   |   |-- spring-mybatis.xml        # Spring Mybatis 配置文件
    |   |   `-- static                    # 存放静态资源的目录
    |   |       |-- css                   # 存放 CSS 文件的目录
    |   |       |-- js                    # 存放 JavaScript 文件的目录
    |   |       `-- images                # 存放图片资源的目录
    |   `-- webapp                        # 存放 WEB 相关配置和资源
    |       |-- WEB-INF                   # 存放 WEB 应用配置文件
    |       |   |-- web.xml               # Web 应用的部署描述文件
    |       |   `-- classes               # 存放编译后的 class 文件
    |       `-- index.html                # Web 应用入口页面
    `-- test                              # 项目测试代码
        |-- java                          # 单元测试目录
        `-- resources                     # 测试资源目录
  • pom.xml:Maven 项目管理文件,用于描述项目的依赖和构建配置等信息。
  • src/main/java:存放项目的 Java 源代码。
  • src/main/resources:存放项目的资源文件,如配置文件、静态资源等。
  • src/main/webapp/WEB-INF:存放 Web 应用的配置文件。
  • src/main/webapp/index.jsp:Web 应用的入口页面。
  • src/test/java:存放项目的测试代码。
  • src/test/resources:存放测试相关的资源文件,如测试配置文件等。

你可能感兴趣的:(JAVA进阶之路,intellij-idea,maven,java)