目录
一、用 mvn 命令创建项目
二、用 IDEA 的方式来创建 Maven 项目。
(1)首先在 IDEA 下的 Maven 配置要已经确保完成。
(2)第二步去 new 一个 project (创建一个新工程)
(3)创建成功(一个简单的 Maven 项目)
三、项目结构
(1)分析一下刚刚我们创建的一个基础的 Maven 项目。(或叫 "脚手架")
(2)依次介绍各个文件或者文件夹的作用。
1、pom.xml
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 绑定的一个功能。
这篇博客的学习就到这。