目录

基于IDEA的Maven简单工程创建及结构分析

目录

[一、用 mvn 命令创建项目](#一、用 mvn 命令创建项目)

[二、用 IDEA 的方式来创建 Maven 项目。](#二、用 IDEA 的方式来创建 Maven 项目。)

[(1)首先在 IDEA 下的 Maven 配置要已经确保完成。](#(1)首先在 IDEA 下的 Maven 配置要已经确保完成。)

[(2)第二步去 new 一个 project (创建一个新工程)](#(2)第二步去 new 一个 project (创建一个新工程))

[(3)创建成功(一个简单的 Maven 项目)](#(3)创建成功(一个简单的 Maven 项目))

三、项目结构

[(1)分析一下刚刚我们创建的一个基础的 Maven 项目。(或叫 "脚手架")](#(1)分析一下刚刚我们创建的一个基础的 Maven 项目。(或叫 "脚手架"))

(2)依次介绍各个文件或者文件夹的作用。

1、pom.xml

[2、然后就是 src 文件夹下的两个平行文件夹:main 和 test](#2、然后就是 src 文件夹下的两个平行文件夹:main 和 test)

四、采用约定的目录结构的意义

五、约定大于配置


一、用 mvn 命令创建项目

通过一个 mvn 命令直接让我们创建一个 Maven 的脚手架。

简单说:就是已经帮我们规定了整个项目的结构的这样的一个 Maven 项目。

  • mvn archetype : generate (作者没验证不知道对不对,但是绝对有这回事...)

操作展示(随便创建一个文件夹 SSM ,再在其之中打开 cmd 命令行尝试运行,这里我就不学了,了解知道就行

二、用 IDEA 的方式来创建 Maven 项目。

(1)首先在 IDEA 下的 Maven 配置要已经确保完成。
(2)第二步去 new 一个 project (创建一个新工程)

语言选择:Java ,构建的系统(build system)选择:Maven

(3)创建成功(一个简单的 Maven 项目)

三、项目结构

(1)分析一下刚刚我们创建的一个基础的 Maven 项目。(或叫 "脚手架")

1、它是相当于整个一些代码部分的基础设施,这里面的文件夹采用的是约定的方式。

(就是我们必须要在它指定的文件夹里面放上指定的文件)

2、所以我们必须要知道它的整个项目结构,才能知道哪个文件夹里放哪些文件。

(2)依次介绍各个文件或者文件夹的作用。
1、pom.xml
  • 它是 Maven当中最重要的一个文件了,也是最标志性的一个文件了。
  • 一个 Maven 项目当中必须有一个 pom.xml 文件。
  • 所以说:pom.xml 标志着当前是一个 Maven项目。
  • 学习 Maven 其实就是去学习如何编写 pom.xml 的文件。然后它其实就是 Maven 项目的一个配置文件,后面会学习怎么去写 pom.xml 的一些配置。
2、然后就是 src 文件夹下的两个平行文件夹:main 和 test
  • 也都有 java 文件夹,其实也都有 resource文件夹。

(这里帮忙生成的"脚手架"在 test文件夹里没有,需要时可以自己去建,默认结构里没有)

  • main 文件夹 :主要放的是我们项目的主体文件,就是我们开发项目需要用到的一些Java 类、一些配置文件就放在 main文件夹里面。
  • test 文件夹:就是放一些我们的一些单元测试
  • java 文件夹 :放 .java 文件,比如创建一个 java类
  • com.fei :它是我们的包,通过 groupid生成的一个包(暂时这么理解,这个很重要)
  • Main :这个类其实没啥作用,就是生成一个 main() 方法,不需要可以删去。
  • resources :它里面可以放的文件就很广了。

(除了 .java 文件,都可以放在这个resources 里面,其实就是一些配置文件、静态资源文件:.html.css.js 等等,还有一些模板页:jsp)

例如:" .xml "(配置文件)、" .properties "(属性文件)、" .yml"(学 SpringBoot 时的配置文件)

当我们在写代码去开发一个项目时,写的最多的就是 " .java " 文件,其次就是配置文件 " .xml " 。

  • 关于 test 文件补充:如果想在单元测试中,用一些测试才会用到的配置,就单独在 test 文件夹当中新建一个 resources 文件夹,通常不用。然后里面的 java 文件夹,也是一样的,放 " .java" 文件

四、采用约定的目录结构的意义

也就是要在指定的文件夹放上规定的文件。这样才能够让它知道去某一个文件夹里拿到某个文件。

1、Maven 为了让构建过程能够尽可能自动化完成,所以必须约定目录结构的作用。

2、例如: Maven 执行编译操作,必须先去Java源程序目录读取Java源代码,然后执行编译,最后把编译结果存放在target目录。

3、就比如去resources文件夹里面创建一个java类,就会显示一个图标。它不会让你编译,不理这个文件。因为它已经约定了,不允许你放,但是偏要放,它就不会让编译。

五、约定大于配置

1、Maven对于目录结构这个问题,没有采用配置的方式,而是基于约定。

2、这样会让我们在开发过程中非常方便。如果每次创建Maven工程后,还需要针对各个目录的位置进行详细的配置,那肯定非常麻烦。

(就像 eclipse 一样,去创建一些项目,就要先去指定某个文件夹是写啥的,有点繁琐,增加我们去配置需要的时间)

3、目前开发领域的技术发展趋势就是:约定大于配置,配置大于编码。

当我们运行这个 main() 方法时就会去 java 文件夹里编译所有的代码,然后放到 target 文件里,这是它和 IDEA绑定的一个功能。


这篇博客的学习就到这。

本文是转载文章,点击查看原文
如有侵权,请联系 xyy@jishuzhan.net 删除
相关推荐
雷渊几秒前
谈一谈在分布式系统中,如何保证数据一致性?
java·后端·面试
省长5 分钟前
使用 Sa-Token CORS 策略处理跨域问题(三种方式全版)
java·后端·开源
东方芷兰32 分钟前
JavaWeb 课堂笔记 —— 03 Vue
java·前端·javascript·vue.js·笔记
TT哇1 小时前
【前缀和】矩阵区域和(medium)
java·线性代数·算法·矩阵
JoshuaGraham1 小时前
Java 并发-newFixedThreadPool
java·开发语言
darkchink1 小时前
[LevelDB]Block系统内幕解析-元数据块(Meta Block)&元数据索引块(MetaIndex Block)&索引块(Index Block)
android·java·服务器·c语言·数据库·c++·分布式
不吃酸的柠檬1 小时前
如何在idea中新建一个项目
java·ide·intellij-idea
程序员鱼皮1 小时前
2025全新 Java 面经:字节飞书实习一面真实复盘,附答案整理+ Java 题库!
java·后端·面试
无名之逆2 小时前
[特殊字符] 超轻高性能的 Rust HTTP 服务器 —— Hyperlane [特殊字符][特殊字符]
java·服务器·开发语言·前端·网络·http·rust