首页 > 其他分享 >基于IDEA的Maven简单工程创建及结构分析

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

时间:2024-06-18 21:28:08浏览次数:29  
标签:文件 java 项目 创建 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 绑定的一个功能。


这篇博客的学习就到这。

标签:文件,java,项目,创建,IDEA,Maven,文件夹
From: https://blog.csdn.net/m0_74363339/article/details/139781490

相关文章

  • Dbeaver执行外部SQL脚本文件创建数据库、建表导入数据等
    Dbeaver执行外部SQL脚本文件创建数据库、建表导入数据等点击项目浏览器右键点击选中,然后选择sql文件右键点击连接地址,选中【工具】,选中【创建新任务】填写信息,选中【执行SQL脚本】,然后【下一步】选中脚本文件点击确定选中数据库的连接地址,如果自动关联就无......
  • RERCS系统开发实战案例-Part08 FPM 应用程序的表单组件(From UIBB)与列表组件(List UI
    1、新建FromUIBB的FPMApplication的快速启动面板备注:该步骤可第一步操作,也可最后一步操作,本人习惯第一步操作。1)使用事务码LPD_CUST,选择对应的角色与实例进入快速启动板定制页面;2)新建FPMApplication应用程序;注意:此处的应用程序别名用于ListUIBB的实施方法IF_FPM_G......
  • 无状态Pod的创建流程
    我们知道无状态工作负载Deployment创建容器组,是通过控制ReplicaSet来实现的,下面我们了解下ReplicaSet创建Pod的详细流程。  图中有三个List-Watch,分别是ControllerManager(运行在Master),Scheduler(运行在Master),kubelet(运行在Node)。它们在进程一启动就会监听(Watch)APIServ......
  • eclipse maven打包报错: 致命错误: 在类路径或引导类路径中找不到程序包 java.lang的
    还是上来帖张图:1、系统之前是运行在mac上的,打包一切正常,但是现在在win11的eclipse打包就报错了。2、致命错误:在类路径或引导类路径中找不到程序包java.lang,上面的问题应该是找不到java中的jar中的class导致。解决:1)java,运行直接提示找不到命令。发现以管理员运行是......
  • 5、k8s-资源管理-yaml语言--使用yaml语言创建nginx服务
    YAML语言是一个类似XML、JSON的标记性语言、他强调以数据为中心、而不是以标识语言为重点、因而YANL本身定义比较简单:对比如下XML语言:<html><age>15</age><address>hainan</address></html>YAML语言:heima:age:15address:hainanyaml语言没有过多的......
  • MySQL:创建账户及修改密码
    1、创建账户MySQL5.8:grantallprivilegeson*.*totst@%identifiedby'123456';MySQL8.0:createuser'tst'@'%'identifiedby'123456';grantallprivilegeson*.*to'tst'@'%'withgrantoption;......
  • 使用.NET Core创建Windows服务
    一、使用VS创建打开VisualStudio,创建新项目,找到WorkerService模板。 二、项目结构说明创建出来的项目,包含两个主要文件:1)其中Program.cs文件是应用的启动“引导程序”;2)另外一个文件是worker.cs文件,在这个文件中,可以编写自己的服务逻辑。 三、将应用转换成Window服务......
  • Linux创建回收站,防止误删文件 误删除文件恢复
    使用为Centos7创建回收站的方法,可以有效地防止误删文件,并对删除信息进行记录。实现:每个用户都可以使用回收站功能每个用户具有独立的回收站,用户删除的文件会移动到自己专属的回收站中,不会被未授权的用户看到。回收站内按照天建立文件夹,移入的文件添加时间后缀进行重命名,防止......
  • AI + 3D:用单个图像和文本提示创建可交互的3D世界
    你是否曾经梦想过只需一张照片和一些简单的文字描述,就能立即进入一个生动的3D虚拟世界?今天,我们将介绍一个革命性的技术,它就像是一台神奇的3D场景制造机,能够根据你的想象快速构建出令人惊叹的虚拟空间。一、技术概览这项技术不仅仅是一个简单的图像到3D的转换工具,更是一个完整......
  • 创建国民芯片N32G430工程模板教程
    一、文章内容说明对于大部分初学者来说,都习惯性跟着UP主去按部就班创建工程模板然后在进行相关程序模块的编写。但是实际工作中这是一种很费时间也不明智的做法,尽管如此本文还是想要满足一下大部分初学者的心态,确保他们在按部就班的过程中有所依赖,本文就以傻瓜式的方法来说明......