Maven入门看这篇

注:参考资料如下

【(超详细)2021最新Maven教程-Maven基础篇之Maven实战入门-最新IDEA版maven【半天快速掌握,附全套视频资料】】 https://www.bilibili.com/video/BV1Fz4y167p5/?share_source=copy_web

一、简介

​ Maven是一个跨平台的项目管理工具,其主要服务于基于Java平台的项目创建,依赖管理和项目信息管理,是一个自动化构建工具。Maven是Apache组织的一个颇为成功的开源项目。

二、四大特性

  1. 依赖管理系统

    管理jar包,jar包升级时修改配置文件即可。用groupId、artifactId、version组成的Coordination(坐标)唯一标识一个依赖。

    如下:

    <dependency>
    	<groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
    </dependency>
    
    • groupId

      ​ 定义当前Maven项目隶属的实际项目-公司名称。

    • artifactId

      ​ 定义实际项目中的一个Maven模块-项目名。

    • version

      ​ 定义Maven项目当前所处的版本。

  2. 多模块构建

    ​ 定义一个parent POM 作为一组module的聚合POM ,在该POM中可以使用标签

    来定义一组子模块。parent POM不会有实际构建产出,而parent POM中的build配置以及依赖配置都会自动继承给子module。

  3. 一致的项目结构

    ​ 设计理念——约定大于配置。其制定了一套项目目录结构作为标准的java项目结构,解决不同ide带来的文件目录不一致问题。

  4. 一致的构建模型和插件机制

三、Maven的安装配置和目录结构

1. 检查JDK版本

JDK1.7及以上版本

2. 下载Maven

Maven – Download Apache Maven

在这里插入图片描述

3. 配置Maven环境变量

maven配置环境变量_maven配置环境变量配置-CSDN博客

mvn -v

4. Maven的目录结构

目录目的
${basedir}存放pom.xml和所有的子目录
${basedir}/src/main/java项目的java源代码
${basedir}/src/main/resources项目的资源,比如说property文件
${basedir}/src/test/java项目的测试类,比如说JUnit代码
${basedir}/src/test/resources测试使用的资源

四、 启动Maven项目

1. (建议)配置本地仓库和阿里云镜像

Maven配置仓库、阿里云镜像、环境变量(史上最全最详细)_maven配置阿里云镜像_FBI HackerHarry浩的博客-CSDN博客

Maven的安装与配置_windows 配置maven本地用反斜杠还是-CSDN博客

2. cmd下编译并运行

  1. 编写主函数

    在这里插入图片描述

  2. 项目根目录,进入cmd

    • 编译java文件

      mvn compile
      

      成功则出现 BUILD SUCCESS

    • 执行main方法

      mvn exec:java -Dexec.mainClass="com.xxx.demo.Hello"
      
    • 编译失败可能的问题:

      1.不是使用管理员权限执行dos命令
      2.JDK环境配置有问题,重装JDK
      3.代码编写时,类里面没设置包名(如果编译时类没加包名,执行时也不需要加包名)
      

五、 Maven命令

1. 基本命令

命令描述
mvn -version显示版本信息
mvn clean清理项目生产的临时文件,一般是模块下的target目录
mvn compile编译源代码,一般编译模块下的src/main/java目录
mvn package项目打包工具,会在模块下的target目录生成jar包或war等文件
mvn test测试命令,或执行src/test/java下的junit的测试用例
mvn install将打包的jar/war文件复制到你的本地仓库中,供其他模块使用
mvn deploy将打包的文件发布到远程仓库,提供其他人员进行下载依赖
mvn site生成项目相关信息的网站
mvn eclipse:eclipse将项目转化为Eclipse项目
mvn dependency:tree打印出项目的整个依赖树
mvn archetype:generate创建Maven的普通java项目
mvn tomcat7:run在tomcat容器中运行web项目
mvn jetty:run调用Jetty插件的Run目标在Jetty Servlet容器中启动web应用

2. 命令参数

  • -D 传入属性参数

    mvn packeage -Dmaven.test.skip=true
    

    以-D开头,将maven.test.skip的值设为true,就是告诉maven打包的时候跳过单元测试。

  • -P 使用指定的Profile配置

    mvn packege -Pdev -Dmaven.test.skip=true
    

    打包,找dev环境的配置文件,跳过单元测试

    在这里插入图片描述

六、 IDEA编辑器集成Maven环境

在这里插入图片描述

七 、Maven项目的创建

1. 创建Java项目

1. 创建项目

  • 打开IDEA,新建项目,选择Maven

    在这里插入图片描述

  • 设置项目的GroupId和ArtifactId

    在这里插入图片描述

  • 检查Maven环境

    在这里插入图片描述

  • 检查项目名和工作空间

    在这里插入图片描述

  • 等待项目创建,下载资源,创建成功

    在这里插入图片描述

2. 编译项目

  • 点击右上角的“ADD Configurations”,打开“Run/Debug Configurations"窗口

    在这里插入图片描述

  • 点击左上角的“+”号,选择“Maven”

    在这里插入图片描述

  • 设置编译项目的命令

    在这里插入图片描述

  • 执行编译

    在这里插入图片描述

2. 创建Web项目

1. 创建项目

步骤与创建Java项目基本一致,区别在于选择Maven模板,web选择webapp,如下图

在这里插入图片描述

目录结构如下:

在这里插入图片描述

2. 启动项目

  1. 修改pom.xml文件

    • 修改JDK版本为1.8

      在这里插入图片描述

    • 设置单元测试的版本

      在这里插入图片描述

    • 删除pluginManagement标签

      在这里插入图片描述

    • 添加web部署的插件

      在build标签中添加plugins标签

      1. Jetty插件

        在这里插入图片描述

      2. Tomcat插件

        在这里插入图片描述

  2. 启动项目

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


Jetty插件配置

在这里插入图片描述

也可以输入命令指定端口启动
jetty:run -Djetty.port=9090 #需要将插件配置中的port标签去掉

在这里插入图片描述

启动

在这里插入图片描述


tomcat插件配置

在这里插入图片描述

八、 Maven仓库的基本概念

九、 Maven环境下构建多模块项目

这里以四个模块为例,来搭建项目

模块 maven_parent -- 基模块 (pom)
模块 maven_dao -- 数据库的访问层,例如jdbc操作(jar)
模块 maven_service -- 项目的业务逻辑层 (jar)
模块 maven_controller -- 用来接收请求,响应数据(war)
  1. 创建maven_parent项目

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

  2. 创建maven_dao模块

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

  3. 创建maven_service模块

    创建maven_service模块的步骤与maven_dao模块一致。

  4. 创建maven_controller模块

    与上面基本一致,只需要将第一步选择Maven模板设置为web项目即可。(maven-archetype-webapp)

全部建完后效果如下:

在这里插入图片描述

  1. 设置模块的配置

    • 设置jdk版本

    • 单元测试Junit版本

    • 删除多余的配置

      在这里插入图片描述

  2. 设置模块之间的依赖

    • maven_dao

      1. 新建包
      2. 包中创建UserDao类
      3. 类中添加方法

      在这里插入图片描述

    • maven_service

      1. 添加maven_dao的依赖
      2. 在项目中添加UserService类,并添加方法

      在这里插入图片描述

    • maven_controller

      1. 添加maven_service模块的依赖
      2. 添加Servlet的依赖
      3. 新建Java类,集成HttpService,并重写service方法
      4. 添加Tomcat插件

      在这里插入图片描述

      在这里插入图片描述

      在这里插入图片描述

    • 依次install各个模块(先父项目,最后tomcat)

      在这里插入图片描述

      在这里插入图片描述

十、 Maven的打包操作

一般来说,普通java项目打包成jar包,web项目打包成war包

打包war包:

在这里插入图片描述

  1. 建立对应的目录结构

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

  2. 添加Profile配置

    在这里插入图片描述

  3. 设置资源文件配置

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

  4. 执行打包操作

    在这里插入图片描述

    在这里插入图片描述

Spring Boot Maven plugin打包

IDEA 打包、Spring Boot Maven plugin 打包可执行 Jar、war 程序_maven war和jar plugin-CSDN博客

十一、 解决Maven依赖冲突

如何解决Maven依赖冲突_maven依赖冲突的两种解决方式_Q-T的博客-CSDN博客

场景:

在这里插入图片描述

Maven传递性依赖机制,有可能产生冲突。

处理方式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值