【超全详解】Maven工程配置与常见问题解决指南

在这里插入图片描述
在这里插入图片描述

Maven工程

一、如何检查Maven工程是否配置正确?

1、检查路径
  • 在Settings中找到Build,Execution,Deployment,找到其中的Build Tools,再找到Maven,检查以下的三个路径是否配置完毕。

在这里插入图片描述

2、检查基本配置
  • pom.xml中的maven.compiler.source和maven.compiler.target都是8
  • Project Structure中的Modules的Language Level为8-Lambdas,type annotations etc.
  • Settings中的Build,Execution,Deployment中的Compiler的Java Compiler的Project bytecode version为8,Target bytecode version为1.8
3、其他配置
  • 将pom.xml中的jdk版本改为1.8
  • 选中右下角弹窗auto import

如果前者配置正确但Maven工程仍无法正常使用,则将Maven工程删掉重建

二、Maven的基本操作

基本操作

在这里插入图片描述

  • clean-compile 删除target目录并重新编译
    • 必须先clean之后,再进行compile
    • 一般来说,clean-compile针对的是项目代码有修改或者构建过程中出现错误的情况,习惯性在进行其他操作前先clean-compile一次
  • install 打资源jar包,直接将jar包打入maven repository
  • package 打执行jar包,直接将jar包打入target
installpackage的区别

package是本地化的,只生成部署包(如jar包),而install相当于在执行了package之后,再将其安装到本地仓库。两者都能找到实际的部署包文件,区别只是在于是否需要放入本地仓库。
在这里插入图片描述

  • reload project用于刷新配置文件,如果添加/删除了依赖或者插件就可以用它

三、获取别人的Maven工程之后如何修改?

1.修改Maven配置
详见第一大点

2.清除缓存

  • 通过IDEA的File -> Invalidate Caches清除缓存
  • Maven Clean 清除旧的源文件

3.更新项目依赖

  • 在IDEA右键点击项目根目录执行Maven -> Reimport
  • 在IDEA右键点击pom.xml执行Maven -> Reload

4.配置数据源和其他环境
5.检查项目编译版本
6. 删除target代码包重新编译
7. 标记源码目录

  • 对所有的Java包Mark Directory As -> Sources Root

四、如何正确写好配置文件?

1.寻找配置资源

Maven Repository上搜索所需资源
在这里插入图片描述
在选择资源时,最好选择用的人数较多的、非红色提示信息(失效)、较新版本的资源。
点击进任意版本号后,就会出现该资源的Maven配置信息如下,直接拷贝后放入工程中的配置文件即可。(注意:在将配置信息放入配置文件之后,需要记得进行reload project)
在这里插入图片描述

2.管理项目依赖
  • 如果导入依赖后报错,则需要手动进行reload project
  • 首先需要在pom.xml文件的<properties>部分定义依赖的版本号,然后在<dependencies>部分将实际的依赖项一次性粘贴进去即可,Maven会自动使用前面定义的版本号。

五、Maven工程的创建

1.选择工程范式

  • 创建一个有特定archetype的Maven工程
    • 常见archetype:quickstartwebapp
    • 能够直接生成对应的Maven项目结构
    • 目录结构包含了src,pom.xml和一些archetype特有的目录结构
  • 创建一个Maven化的Java工程
    • 目录结构比较简单,只有src和一些基本配置文件
    • 更有利于根据需求进行定制化

2.配置Advanced Settings

  • GroupId: 域名倒置 com.ybg
  • ArtifactId: 工程名称

3.验证是否成功创建Maven工程:检查工程下是否有src目录,有即创建成功
4.删除不需要的依赖和test包

六、Maven工程的基本目录结构

项目根目录
│   pom.xml    
│
└───src
    ├───main
    │   ├───java
    │   │   └───com
    │   │       └───ybg
    │   │           └───项目名
    │   │                   │   Application.java (主类)
    │   │                   ├───config (配置相关)
    │   │                   ├───controller (控制层)
    │   │                   ├───domain (实体类)
    │   │                   │   ├───dto (数据传输对象)
    │   │                   │   └───vo  (视图对象)
    │   │                   ├───exception (异常处理)
    │   │                   ├───mapper (数据访问层,MyBatis的Mapper接口)
    │   │                   ├───repository (数据访问层,如使用Spring Data)  
    │   │                   ├───service (服务层)
    │   │                   │   ├───impl (服务实现)
    │   │                   │   └───... (接口)
    │   │                   └───util (工具类)
    │   │
    │   └───resources
    │        └───...  (配置文件,如application.properties/yml等)
    │ 
    └───test
        └───java
            └───...  (单元测试)
  • com.ybg通常使用公司域名的反写作为基础包名,是整个代码的根包,不能在中间再建子包
  • 所有源码都放在src/main/java目录下的com/ybg/项目名包中
  • 通常按照分层结构组织代码:
    • config 存放配置相关类
    • controller Web层Controller
    • domain 领域模型相关,如实体类、DTO、VO等
    • exception 自定义异常处理
    • mapper 存放MyBatis的Mapper接口
    • repository 如使用Spring Data,存放Repository接口
    • service 服务层接口和实现
    • util 工具类
  • Application类作为主类,通常直接放在com/ybg/项目名包下
  • 资源文件如配置文件等放在src/main/resources目录下
  • 单元测试代码放在src/test/java目录下,保持与源码包名结构一致

注意以下几点:

  1. 遵循分层结构有助于代码组织和可维护性
  2. 包名采用小写,类名使用大驼峰命名
  3. 如有必要可以根据实际情况增减包
    Mapper接口和业务Service层要有良好的分离
  4. 单元测试建议覆盖到service/controller等各层

七、Maven工程的常见问题和解决方案

  • A. 假性导包,可能并没有报红,但是在external libraries中没有出现对应的依赖
    • 需要在localrepository中将对应的导包删去,并在pom.xml中reload import
  • B. 端口占用
    • netstat -ano|findstr "9000" 查询端口号被哪一个进程占用
    • taskkill /F /pid 25076 强制终止25076的进程
  • C. 时区问题(mysql)
    • set global time_zone = '+8:00';(直接在控制台执行解决时间问题)
  • D. 架包下了一半
    • 在Maven localrepository将文件夹删除(或者将整个大文件夹删除,因为可能错的不仅仅是一个文件)
    • 在工程中Maven reload project重新下载。
  • E. 如何解决Application start error?
    • Maven reload一下pom.xml
  • F. 如果出现找不到或者无法加载主类?
    • Project structure将原模块删除之后,add content对应的文件夹。
  • 62
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Byyyi耀

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

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

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

打赏作者

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

抵扣说明:

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

余额充值