一文搞懂Java项目工程管理神器——Maven

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介: 在日常的Java项目开发当中,构建一个通用、合理、统一的项目工程框架,一直是很多程序员头疼的事情。要解决这个问题,我们就不得不提到Maven这个Java工具了。本文会详细分享Maven,并在文章内分享代码实例。

在日常的Java项目开发当中,构建一个通用、合理、统一的项目工程框架,一直是很多程序员头疼的事情。

要解决这个问题,我们就不得不提到Maven这个Java工具了。

内容较多,有需要的朋友可以先收藏这篇文章,慢慢读。
v2-0eaabacfd1fc9c28950674d6600d0ec3_r.jpg


一、介绍

Maven是一个由Apache运营管理的Java工程管理工具,能便捷、高效地管理项目构建、报告、以及文档管理。

在下载页面可以看到下图内容:
1.jpg

  • Binary tar.gz archive: 适用linux环境的二进制包;
  • Binary zip archive: 适用Windows环境的二进制包(一般下载这个版本);
  • Source tar.gz archive: 适用linux环境的源文件包;
  • Source zip archive: 适用Windows环境的源文件包;

二、IDEA绑定

JetBrains的IDEA是默认配置了maven的环境工具,一般来说IDEA配置的maven就够用了。

但:

  • 如果想自己配置和绑定特定版本的maven,可以继续看下去;
  • 如果使用IDEA默认maven的小伙伴,可以直接跳过本节内容

下载完成后,正常解压,存放到合适的目录下即可:

打开IDEA,点击菜单:

Settings -> Build, Execution, Deployment -> Build Tools -> Maven
2.jpg

点击Maven home path选项最右侧的...按钮,唤起文件管理器对话框,找到Maven所在的目录(一般目录名默认为apache-maven-3.x.xbin的上一级目录)

目录路径配置完成后,如果此时Maven home path下方的Version版本编程你配置的版本号,则绑定成功。你就可以愉快地在IDEA上使用maven了。


三、项目结构

标准的maven项目结构如下:

maven.project
  ┣━src
  ┃  ┣━main
  ┃  ┃  ┣━jave
  ┃  ┃  ┗━resources
  ┃  ┗━test
  ┃     ┗━java
  ┣━target
  ┃  ┣━classes
  ┃  ┗━generated-sources
  ┗━pom.xml
  1. pom.xml: pom是project object model的首字母缩写,是maven的项目配置文件,也是maven工具的核心;
  2. src/main/java: java项目的源代码目录;
  3. src/main/resources: java项目的资源文件目录;
  4. src/test: 项目的测试代码包,测试用例存储的位置;
  5. target/classes: 输出的字节码文件目录。

四、常用标签

通过在pom.xml文件里进行标签设置,即能实现很多项目工程管理的功能。

1. 依赖坐标系

maven会自动完成依赖库下载安装的工作,但前提条件是设置正确 依赖坐标系
<dependency>
    <groupId>机构名</groupId>
    <artifactId>项目名</artifactId>
    <version>版本号</version>
</dependency>

说明:

  • 上述包括groupIdartifactIdversion被成为依赖坐标系,用来定位项目需要的依赖包;
  • 依赖坐标系可以通过官方提供的检索地址检索:search.maven.org;
  • 上述依赖坐标系需要设置在<dependencies>标签内。

2. 自定义仓库源

由于maven默认的apache仓库源在境外服务器上,更新安装速度可能受限,可以通过下述方法,将仓库源设置为国内镜像。
<repository>
    <id>仓库编号(自定义、可随意设置)</id>
    <name>仓库名(自定义、可随意设置)</name>
    <url>仓库地址</url>
</repository>

说明:

3. 属性标签

pom.xml文件中有很多属性的配置,在 <properties>标签下不仅能设置项目配置,还能设置变量:
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <mysqlconnectorj.verison>8.0.31</mysqlconnectorj.verison>
</properties>

说明:

  • 上例中的<project.build.sourceEncoding>是项目属性配置,通过上述语句,可以将项目的字符编码设置为utf-8,可以避免一些乱码的情况;
  • 上例中的<mysqlconnectorj.verison>是自定义变量配置,自定义变量的格式一般为<变量名>值</变量名>;
  • 若要调用上述变量mysqlconnectorj.version的值,通过语法${变量名}即可。如:调用上例中的8.0.31,语句为${mysqlconnectorj.version}

4. 插件配置

maven还有很多实用的扩展插件,配置maven扩展的标签方法如下:
  • 设置插件坐标系
<build>
    <plugins>
        <plugin>
            <groupId>机构名</groupId>
            <artifactId>项目名</artifactId>
            <version>版本号</version>
            <configuration>配置信息</configuration>
        </plugin>
    </plugins>
</build>
  • 设置插件库源
<pluginRepositories>
    <pluginRepository>
        <id>插件编号(自定义、可随意设置)</id>
        <name>插件名(自定义、可随意设置)</name>
        <url>插件地址</url>
    </pluginRepository>
</pluginRepositories>

说明:

  • 上述两组标签,都需要设置在pom.xml即可
  • 插件库源和仓库源的配置一致,url也相同

关于Maven的知识点和实例演示就先分享到这里。

感谢你看到这里。如果你对分享的内容有任何疑问,欢迎随时在评论区留言交流。
v2-8b0d4cf39cd6bafa67fbfcd75b953952_r.jpg

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3天前
|
JavaScript 前端开发 Java
Java数字化产科管理系统源码,多家医院应用案例,可直接上项目
Java开发的数字化产科管理系统,已在多家医院实施,支持直接部署。系统涵盖孕产全程,包括门诊、住院、统计和移动服务,整合高危管理、智能提醒、档案追踪等功能,与HIS等系统对接。采用前后端分离架构,Java语言,Vue前端,若依框架,MySQL数据库。优势在于提升就诊效率,降低漏检率,自动报表生成,减少重复工作,支持数据研究,并实现医院与卫计委平台的数据互通,打造全生育周期健康服务。
20 4
|
3天前
|
设计模式 Java 开发者
如何在Java项目中实现领域驱动设计(DDD)
如何在Java项目中实现领域驱动设计(DDD)
|
4天前
|
存储 Java Maven
Maven依赖全爆红,一刷新就JAVA_HOME environment variable is not defined correctlyThis environment variable is
Maven依赖全爆红,一刷新就JAVA_HOME environment variable is not defined correctlyThis environment variable is
|
3天前
|
设计模式 算法 搜索推荐
Java中的设计模式及其在实际项目中的应用
Java中的设计模式及其在实际项目中的应用
|
3天前
|
XML Java 数据库连接
【项目问题解决】 java.lang.IllegalArgumentException: XML fragments parsed
**问题摘要:** Java 应用在执行MyBatis映射时抛出`IllegalArgumentException`,指出XML片段缺少`com.xxx.xxx.xxx.xxx.dao.SingleApasInfoDao.selectListCondition`的值。此异常暗示XML映射文件存在错误或未定义指定方法。解决策略包括检查映射文件中标签的完整性与属性设置,修复可能的XML格式错误,以及确保使用的XML解析器支持所需特性,如有必要,升级解析器。
10 1
|
14小时前
|
安全 Java 数据安全/隐私保护
在Java项目中集成单点登录(SSO)方案
在Java项目中集成单点登录(SSO)方案
|
3天前
|
IDE Java Maven
如何使用Maven管理Java项目依赖
如何使用Maven管理Java项目依赖
|
3天前
|
Java Maven
第一次导入项目,从gitee拉取的代码无法拉取怎么解决,idea如何导入项目,如何跑拉取的项目,如何使用Maven导入项目,如何回到idea首页,如何导入第一次的项目,拉取的代码出现了橘黄色图标,图片
第一次导入项目,从gitee拉取的代码无法拉取怎么解决,idea如何导入项目,如何跑拉取的项目,如何使用Maven导入项目,如何回到idea首页,如何导入第一次的项目,拉取的代码出现了橘黄色图标,图片
|
1天前
|
Java 开发者 UED
Java中的并发编程:解锁多线程的力量
【7月更文挑战第7天】在Java的世界中,掌握并发编程是提升应用性能和响应能力的关键。本文将深入探讨如何在Java中高效地使用多线程,包括创建和管理线程、同步机制、以及避免常见的并发陷阱。我们将一起探索锁、线程池、并发集合等工具,并了解如何通过这些工具来优化程序的性能和稳定性。
|
3天前
|
监控 安全 Java
Java中的线程调度与性能优化技巧
Java中的线程调度与性能优化技巧