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

目录

一、用 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 绑定的一个功能。


这篇博客的学习就到这。

  • 19
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

岁岁岁平安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值