当前位置: 首页 > news >正文

maven框架

 Maven 是一个项目管理和构建自动化工具,由 Apache 软件基金会维护,广泛应用于 Java 项目开发中。它通过约定优于配置的原则和依赖管理机制,简化了项目的构建、测试、打包和部署流程。以下是 Maven 的核心要点:


1. 核心定位

  • 项目构建工具:自动化处理编译、测试、打包(如 JAR/WAR)、部署等流程。
  • 依赖管理:统一管理项目所需的第三方库(如 Spring、MyBatis)及其版本,避免冲突。
  • 标准化开发流程:通过生命周期(Lifecycle)和插件(Plugin)定义标准化的构建步骤。

2. 核心概念

(1) POM(Project Object Model)

  • 项目配置文件pom.xml 是 Maven 的核心文件,定义项目信息、依赖、插件等。
  • 示例

    xml

    <project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId> <!-- 项目组织ID(通常为域名反写) -->
    <artifactId>my-app</artifactId> <!-- 项目模块名 -->
    <version>1.0.0</version> <!-- 版本号 -->
    <dependencies>
    <!-- 依赖配置 -->
    <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>5.3.10</version>
    </dependency>
    </dependencies>
    </project>

(2) 生命周期(Lifecycle)

Maven 定义了三个标准生命周期:

  1. Clean:清理项目(mvn clean)。
  2. Default:核心构建流程(编译、测试、打包、安装等)。
    • compile → test → package → install → deploy
  3. Site:生成项目文档(mvn site)。

(3) 插件(Plugin)

  • 插件是生命周期中具体任务的执行者,例如:
    • maven-compiler-plugin:编译 Java 代码。
    • maven-surefire-plugin:运行单元测试。
    • maven-jar-plugin:打包为 JAR 文件。

(4) 仓库(Repository)

  • 本地仓库:存储在用户目录下的 .m2/repository,缓存下载的依赖。
  • 远程仓库
    • 中央仓库(Maven Central):默认的公共仓库(https://repo.maven.apache.org)。
    • 私有仓库:如 Nexus 或 Artifactory,用于内部共享依赖。

3. 常用命令

命令作用
mvn clean删除 target 目录(清理编译结果)。
mvn compile编译源代码到 target/classes
mvn test运行单元测试。
mvn package打包为 JAR/WAR 文件(到 target/)。
mvn install将包安装到本地仓库,供其他项目依赖。
mvn deploy将包发布到远程仓库(如 Nexus)。
mvn dependency:tree查看依赖树,分析冲突。

4. 优势

  • 依赖管理:自动下载和更新依赖,避免手动管理 JAR 包。
  • 标准化流程:统一构建步骤,减少“在我机器上能运行”的问题。
  • 插件扩展:通过插件支持代码生成、静态分析、部署等任务。
  • 多模块支持:适合大型项目分模块开发(如 parent-pom 管理子模块)。

5. 与 Gradle 的对比

特性MavenGradle
配置方式XML(pom.xmlGroovy/Kotlin DSL(更灵活)
性能较慢(基于 XML 解析)更快(增量构建、缓存优化)
学习曲线较低(约定优于配置)较高(需学习 DSL 语法)
适用场景传统 Java 项目、企业级应用Android 开发、复杂构建脚本

6. 典型项目结构

Maven 项目遵循标准目录布局:

my-app/
├── src/
│ ├── main/
│ │ ├── java/ # Java 源代码
│ │ └── resources/ # 配置文件(如 `application.properties`)
│ └── test/
│ ├── java/ # 测试代码
│ └── resources/ # 测试配置
├── target/ # 构建输出目录(自动生成)
└── pom.xml # 项目配置文件

7. 生态扩展

  • Spring Boot Maven 插件:支持打包可执行 JAR/WAR。
  • Maven Wrapper:确保团队使用统一版本的 Maven(无需全局安装)。
  • Nexus/Artifactory:搭建私有仓库,管理内部依赖。

总结

Maven 通过 pom.xml 和 生命周期 机制,为 Java 项目提供了高效的依赖管理和构建自动化能力。尽管 Gradle 在性能上更优,但 Maven 仍是企业级 Java 项目的首选工具之一,尤其适合需要标准化和稳定性的场景。

生产实习示例

Svn eclipse   maven量级

  1. Maven的简介
    1. 什么是maven

是apache下的一个开源项目,是纯java开发,并且只是用来管理java项目的

    1. Maven好处

普通的传统项目

Maven项目

分析:maven项目为什么这么小?没有jar。需要jar吗?肯定需要。没有存在于maven项目里面,jar存在于哪?

    1. 依赖管理

    1. 项目一键构建

编码编译测试(junit)  运行打包部署

一个 tomcat:run就能把项目运行起来

Maven能干的事:

编译测试(junit)  运行打包部署

小结:

Maven的好处:

依赖管理

就是对jar包的统一管理可以节省空间

  1. 一键构建
  2. 应用于大型项目可以提高开发效率
  3. 可以跨平台

分析:

用户管理订单管理支付管理。。。。。

Maven的分模块开发

互联网项目按业务分

传统项目按层分 entity  dao  service  web

Maven的安装配置

下载安装

1.官网下载https://maven.apache.org/download.cgi

2.下载完成后,解压到某一路径下。本文以F:\class32\apache-maven-3.3.9为例,实际配置环境变量时以自己安装的路径为准。

Source是源代码版本,需要自己编译成可执行软件才可使用。

tar.gz和zip两种压缩格式,其实这两个压缩文件里面包含的内容是同样的,只是压缩格式不同

tar.gz格式的文件比zip文件小很多,用于unix操作系统。

zip格式用于Windows操作系统,但在Windows系统使用WinRar工具一样能够解压缩tar.gz格式

直接解压到一个没有中文没有空格的文件夹里解压后的目录如下:

Maven软件的核心文件:

  1. Maven环境变量配置
  2. 要配置jdk,  maven3.3.9这个版本所需的jdk版本必须要1.7以上
  3. 最终要运行的是maven软件中bin目录的mvn命令

所以要配置maven的环境变量

在系统变量添加

环境变量的名称:MAVEN_HOME

变量值:就是maven软甲解压的目录F:\class32\apache-maven-3.3.9

  1. 把MAVEN_HOME添加到path里

F:\mav\apache-maven-3.3.9\bin

4、验证maven是否配置成功:

打开dos窗口输入: mvn –v

    1. Maven仓库

三种仓库

1、本地仓库自己维护

本地仓库的配置只需要修改settings.xml文件就可以

配置idea

创建Maven项目

<!--    https://mvnrepository.com/-->

阿里云加速器

加入日志包

http://www.dtcms.com/a/416410.html

相关文章:

  • 网站开发对cpu要求高吗自己做的网站收费
  • 算法迭代详解
  • 网站建设目标与期望南京网络营销课程培训
  • 10元网站备案本地服务器公网ip wordpress
  • PNETLab加载镜像包
  • 中国建设企业银行登录网站甘肃兰州旅游必去十大景点
  • 房地产网站欣赏佛山建设局网站
  • 广东网站备案 时间企业培训师
  • Day72 基本情报技术者 单词表07 操作系统基础
  • 外贸网站模板 外贸网站制作上海网站推广广告
  • GNSS高精度定位技术详解
  • 大兴网站设计wordpress数据搬移
  • 单词配对记忆游戏版本 1.0
  • 人体姿态估计与动作比较的开源项目
  • 苏州网站建设外包如企业网站模板下载
  • 嵌入式学习笔记2.GPIO的工作模式
  • 织梦修改网站背景颜色上海网站建设哪家口碑好
  • 网站有几种语言开发的wordpress文章排序方式
  • 5个月的新站网站被k了会怎么样wordpress文章统计
  • 卫浴网站设计网站设计精美案例
  • 第十六届蓝桥杯软件赛B组省赛C++题解(京津冀)
  • 网站关键词分析工具攻略类型网站如何做产品营销
  • 建设大型视频网站需要的资金量安防公司网站模板
  • 住房城乡建设部招投标网站网站被人做跳转
  • 无忧网站建设哪家好建立英语
  • Visio2021绘图基本操作步骤及方法
  • 基于多站点的网站内容管理平台的管理与应用应用商场安全下载安装
  • SpaceX的Raptor发动机详细介绍
  • 厦门做网站多少软件开发项目预算表
  • 陕西建设网网站集群装修公司加盟哪家最好