SSM项目学习2:Maven

Maven简介

  • Maven是基于项目对象模型(POM project object model),可以通过一小段描述信息(配置)来管理项目的构建,报告和文档的软件项目管理工具
  • 通过pom.xml文件的配置获取jar包,而不用手动去添加jar包
  • 合理叙述项目间的依赖关系

可通过在其官网搜搜关键词例如spring来搜索相关jar包,并通过一小段描述信息即可达到导入jar包的作用
maven官网

下载安装

下载地址
配置环境变量,注意path里面的新建maven要配置到bin目录,而mavenhome只需要到其文件夹就行
在这里插入图片描述
打开命令行输入mvn -v 查看结果

Maven使用

Maven规定了一套默认的项目格式

1src/main/java 2 存放项目的.java文件 3src/main/resources 4 存放项目资源文件,如spring、struts2配置文件,db.properties 5src/main/webapp 6 存放jsp,css,image等文件 7src/test/java 8 存放所有测试.java文件,如JUnit测试类 9src/test/resources 10 测试资源文件 11pom.xml 12 主要要写的maven配置文件 13target 14 项目由maven自动输出位置 15 16

创建第一个Maven项目

确认idea安装了Maven插件

在plugin的installed中搜索关键词maven,有2个插件即是有安装插件

创建Maven工程

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

Maven仓库

Maven所有的Jar包都是放到maven仓库当中
在项目当中是对仓库jar包的引用
Maven仓库

  • 本地仓库:本地存放jar的目录
  • 私服:私人搭建的服务器,一般在企业内部局域网使用
  • 中央仓库:Maven内置了一个远程仓库的地址,它就是中央仓库

Maven找jar包的过程
1.Maven查找引入jar包时, 会先到 本地仓库当中查找,没有找到现到私服中找,也没有就去 到远程中央仓库查找.
2.找到后会下载到本地仓库,下次就不用到远程仓库了
3.最终都会把jar包下载到本地仓库
4.Maven工程最终引用的都是本地的jar包

设置本地仓库目录地址
默认本地仓库为
在这里插入图片描述
修改本地仓库地址
把maven安装目录config中setting.xml复制一份到.m2文件夹下
在这里插入图片描述

打开setting.xml修改本地仓库地址
在这里插入图片描述

阿里云镜像

就是第一次引用jar包时远程仓库在国外,需要翻墙,虽然可以下载但速度很慢,所以不如从阿里云镜像下载,由他去国外下载,而且每隔一段时间就从国外下载一次
在这里插入图片描述

Maven常用命令

validate
确保当前配置和 POM 的内容是有效的
clean
删除target目录下及其目录下的所有内容
mvn compile
将java文件编译成二进制放到target目录当中
test
运行测试用例
package
打包工程
install
把maven打成的包发布到本地仓库当中
第i个执行时, i之前的命令都会执行
以下命令了解即可
在这里插入图片描述

Maven作用范围

1<scope>test</scope> 2 3compile 4 默认值 他表示被依赖项目需要参与当前项目的编译,还有后续的测试,运行周期也参与其中,是一个比较强的依赖。打包的时候通常需要包含进去 5test 6 依赖项目仅仅参与测试相关的工作,包括测试代码的编译和执行,不会被打包,例如:junit 7runtime 8 表示被依赖项目无需参与项目的编译,不过后期的测试和运行周期需要其参与。与compile相比,跳过了编译而已。例如JDBC驱动,适用运行和测试阶段 9provided 10 比如tomcat servlet中的jar包打包的时候可以不用包进去,别的设施会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。相当于compile,但是打包阶段做了exclude操作 11system 12 不建议使用从参与度来说,和provided相同,不过被依赖项不会从maven仓库下载,而是从本地文件系统拿。需要添加systemPath的属性来定义路径 13 14

Maven创建Web工程

  1. 点击maven时点击第二个webapp骨架
  2. 在下一步中点击+号 编辑archetypeCatalog 匹配internal
  3. 保留下面这些配置内容(pom.xml)

在这里插入图片描述

  1. 配置tomcat

在这里插入图片描述

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

  1. 创建servlet

添加依赖(导包),在maven搜索Java Servlet API,下载4.0.1版本

  1. 新建servlet

在这里插入图片描述

代码生成器

项目目录如下

在这里插入图片描述
对于pom.xml要配置以下东西

1<build> 2 <finalName>SSMMaven</finalName> 3 <plugins> 4 <plugin> 5 <groupId>org.mybatis.generator</groupId> 6 <artifactId>mybatis-generator-maven-plugin</artifactId> 7 <version>1.3.2</version> 8 <configuration> 9 <verbose>true</verbose> 10 <overwrite>false</overwrite> 11 </configuration> 12 <dependencies> 13 <dependency> 14 <groupId>mysql</groupId> 15 <artifactId>mysql-connector-java</artifactId> 16 <version>5.1.21</version> 17 </dependency> 18 </dependencies> 19 </plugin> 20 </plugins> 21 <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --> 22 <plugins> 23 <plugin> 24 <artifactId>maven-clean-plugin</artifactId> 25 <version>3.1.0</version> 26 </plugin> 27 <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging --> 28 <plugin> 29 <artifactId>maven-resources-plugin</artifactId> 30 <version>3.0.2</version> 31 </plugin> 32 <plugin> 33 <artifactId>maven-compiler-plugin</artifactId> 34 <version>3.8.0</version> 35 </plugin> 36 <plugin> 37 <artifactId>maven-surefire-plugin</artifactId> 38 <version>2.22.1</version> 39 </plugin> 40 <plugin> 41 <artifactId>maven-war-plugin</artifactId> 42 <version>3.2.2</version> 43 </plugin> 44 <plugin> 45 <artifactId>maven-install-plugin</artifactId> 46 <version>2.5.2</version> 47 </plugin> 48 <plugin> 49 <artifactId>maven-deploy-plugin</artifactId> 50 <version>2.8.2</version> 51 </plugin> 52 </plugins> 53 </pluginManagement> 54</build> 55 56

还要在resources中引入generatorConfig.xml,这是之前用代码写的MyBatis代码生成器,到文件夹SSM中找
双击maven中plugins中的mybatis-generator即可生成一系列domain,mapper,mapper接口

http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd变红可通过alt+enter,fetch external resource来解决

SSM整合

具体看网课

代码交流 2021