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

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: 检查Maven配置包括验证路径、设置pom.xml与Project Structure的Java版本。基本操作有`clean-compile`、`install`和`package`,其中`install`会将jar包放入本地仓库。获取他人工程后需修改配置、清除缓存、更新依赖等。配置文件应从Maven Repository找寻,选择稳定高版本。创建Maven工程可选archetype如`quickstart`或直接创建Java工程。基本目录结构遵循分层设计原则,常见问题包括假性导包、端口占用、时区问题等,对应解决方案包括删除本地仓库文件、调整系统设置或重新加载项目。

image.png
image.png

Maven工程

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

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

image.png

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的基本操作

基本操作

image.png

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

    installpackage的区别

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

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

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

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

2.清除缓存

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

3.更新项目依赖

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

4.配置数据源和其他环境
5.检查项目编译版本

  1. 删除target代码包重新编译
  2. 标记源码目录
  • 对所有的Java包Mark Directory As -> Sources Root

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

1.寻找配置资源

Maven Repository上搜索所需资源
image.png

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

2.管理项目依赖
  • 如果导入依赖后报错,则需要手动进行reload project
  • 首先需要在pom.xml文件的\部分定义依赖的版本号,然后在\部分将实际的依赖项一次性粘贴进去即可,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对应的文件夹。
目录
相关文章
|
4月前
|
Java Maven
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
这篇文章是一份关于Maven的安装和配置指南,包括下载、环境变量设置、配置文件修改、IDEA集成Maven以及解决jar包下载问题的方法。
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
|
4月前
|
Java Maven
解决idea每次新建maven项目都需要重新配置maven的问题
解决idea每次新建maven项目都需要重新配置maven的问题
180 1
|
5月前
|
Java Maven 编译器
Java编译器注解运行和自动生成代码问题之@AutoService工作问题如何解决
Java编译器注解运行和自动生成代码问题之@AutoService工作问题如何解决
217 1
|
2月前
|
Java Shell 应用服务中间件
Mac系统下配置环境变量:Javajdk、maven、tomcat 环境变量配置及对应配置文件
这篇文章介绍了如何在Mac系统下配置Java JDK、Maven和Tomcat的环境变量,包括配置文件的选择、解决环境变量在zsh shell中无效的问题、查看和设置系统环境变量的方法,以及JDK和Maven的下载、配置和测试步骤。
1503 1
Mac系统下配置环境变量:Javajdk、maven、tomcat 环境变量配置及对应配置文件
|
2月前
|
Java jenkins 持续交付
Centos7下docker的jenkins下载并配置jdk与maven
通过上述步骤,您将成功在CentOS 7上的Docker容器中部署了Jenkins,并配置好了JDK与Maven,为持续集成和自动化构建打下了坚实基础。
125 1
|
2月前
|
Java Shell Maven
Flink-11 Flink Java 3分钟上手 打包Flink 提交任务至服务器执行 JobSubmit Maven打包Ja配置 maven-shade-plugin
Flink-11 Flink Java 3分钟上手 打包Flink 提交任务至服务器执行 JobSubmit Maven打包Ja配置 maven-shade-plugin
125 4
|
2月前
|
Java Maven
震惊!idea专业版如何配置maven国内源手把手教学
文章提供了如何在IDEA专业版中配置Maven使用国内源(如阿里云)的详细步骤,以加快依赖下载速度,并解释了配置国内源的原因。
601 0
震惊!idea专业版如何配置maven国内源手把手教学
|
3月前
|
XML Java Maven
idea配置maven步骤及常见问题
本文介绍了在IDEA中配置Maven的详细步骤,包括Maven的下载、系统环境变量的配置、Maven本地仓库的设置、镜像加速的配置,以及在IDEA中指定Maven路径和配置文件。同时,还提供了解决每次新建项目需要重新手动配置Maven问题的方法。
idea配置maven步骤及常见问题
|
4月前
|
安全 Java Maven
优化Maven镜像配置:使用阿里云加速依赖下载
更新Maven镜像配置至关重要,尤其使用阿里云仓库时。在`settings.xml`中加入特定镜像配置可显著提升依赖下载速度。示例配置指定了阿里云镜像ID、替代表态仓库、安全的URL、默认布局及启用版本管理。需定位至用户目录下的`.m2/`文件夹编辑`settings.xml`,添加镜像信息后保存测试。若下载仍慢,考虑网络状况或备选镜像。多镜像设置时需注意避免冲突。
664 3
|
5月前
|
Java Maven 开发者
入职必会-开发环境搭建14-IDEA配置Maven
在 IDEA 中配置 Maven 可以帮助开发者更方便地管理项目依赖、构建项目和部署应用程序。要在 IDEA 中配置 Maven,可以按照以下步骤进行。
入职必会-开发环境搭建14-IDEA配置Maven