资料格式:
com.itheima
java代码
statement stat = con.createstatement ();
示例
com.itheima
命令
mvn test
- jar包不统一,jar包不兼容
- 工程升级维护过程操作繁琐
Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)
POM (Project Object Model) :项目对象模型
Maven的作用
- 项目构建:提供标准的、跨平台的自动化项目构建方式
- 依赖管理:方便快捷的管理项目依赖的资源**(jar包)**,避免资源间的版本冲突问题
- **统一开发结构:**提供标准的、统一的项目结构
Maven下载:
官网地址:(https://maven.apache.org/)
用于存储资源,包含各种jar包
中央仓库:是开源/共享的
私服仓库:公司内部的 提供访问速度

用于描述仓库中资源的位置
Maven坐标主要组成
Maven坐标作用:
在src同层目录下创建pom.xml
包含有groupid、artifactId、version 、[packaging] 标签组成
Maven构建命令使用mvn开头,后面添加功能参数,可以一次执行多个命令,使用空格分隔
mvn compile #编译
mvn clean #清理
mvn test #测试
mvn package #打包
mvn install #安装到本地仓库ending

创建Tomcat运行maven web
也就是在pom.xml文件里面添加
引用其他项目的jar包 只需引用jar包的groudId、artifectId、version
**直接依赖:**在当前项目中通过依赖配置建立的依赖关系
**间接依赖:**被资源的资源如果依赖其他资源,当前项目间接依赖其他资源
- 路径优先:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高
- 声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的
- 特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的
<optional>trueoptional>
<exclusions>需要排除的坐标,不需xexclusions>
<scope>scope>
依赖的jar默认情况可以在任何地方使用,可以通过scope标签设定其作用范围作用范围
- 主程序范围有效(main文件夹范围内)
- 测试程序范围有效(test文件夹范围内)
- 是否参与打包(package指令范围内)
| scope | 主代码 | 测试代码 | 打包 | 范例 |
|---|---|---|---|---|
| compile(默认) | Y | Y | Y | log4j |
| test | Y | junit | ||
| provided | Y | Y | servlet - api | |
| runtime | Y | jdbc |

一次构建过程经历了多少事件
cmopile -> test-compile -> test -> packge -> install
- clean:清理工作
- default:核心工作,例如编译,测试,打包,部署等
- site:产生报告,发布站点等

- 插件与生命周期内的阶段绑定,在执行到对应生命周期时执行对应的插件功能
- 默认maven在各个生命周期上绑定有预设的功能
- 通过插件可以自定义其他功能
新建一个模块进行把整合的进行分类模块拆分
新建模块
拷贝原始项目中对应的相关内容到ssm_dao模块中
数据层接口(UserDao)
配置文件:保留与数据层相关配置文件(3个)
注意:分页插件在配置中与SqlSessionFactoryBean绑定,需要保留
新建模块
拷贝原始项目中对应的相关内容到ssm_service模块中
业务层接口与实现类(UserService、UserServicelmpl)配置文件:保留与数据层相关配置文件(1个)
pom.xml:引入数据层相关坐标即可,删除springmvc相关坐标
spring
junit
spring整合junit
直接依赖ssm_dao (对ssm_dao模块执行install指令,将其安装到本地仓库)间接依赖ssm_pojo (由ssm_dao模块负责依赖关系的建立)
修改service模块spring核心配置文件名,添加模块名称,格式: applicationContext-service.xml
修改dao模块spring核心配置文件名,添加模块名称,格式: applicationContext-dao.xml
修改单元测试引入的配置文件名称,由单个文件修改为多个文件
新建模块(使用webapp模板)
拷贝原始项目中对应的相关内容到ssm_controller模块中
表现层控制器类与相关设置类(UserController、异常相关……)
配置文件:保留与表现层相关配置文件(1个)、服务器相关配置文件(1个)
pom.xml:引入数据层相关坐标即可,删除springmvc相关坐标
spring
springmvcjacksonservlet
tomcat服务器插件
直接依赖ssm_service (对ssm_service模块执行install指令,将其安装到本地仓库)
间接依赖ssm_dao、ssm_pojo
修改web.xml配置文件中加载spring环境的配置文件名称,使用*通配,加载所有applicationContext-开始的配置文件

<packing>pompacking>
<modules>
<module> module>
<module> module>
<module> module>
<module> module>
modules>
若工程没有写pacaking 打包方式 默认是jar包,
pom
war
jar
模块依赖维护
继承的作用:
通过继承可以在子工程中用父工程中的配置
制作方式:
<parent>
<groupId>com.kcsgroupId>
<artifactId>ssmartifactId>
<version>1.0-SNAPSHOTversion>
<relativePath>../ssm/pom.xml (父工程的pom文件,y用相对路径)relativePath>
parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-contextartifactId>
<version>5.1.9.RELEASEversion>
dependency>
<dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-contextartifactId>
dependency>
dependencies>

作用
聚合用于快速构建项目
继承用于快速配置
相同点
聚合与继承的pom.xml文件打包方式均为pom,可以将两种关系制作到同一个pom文件中
聚合与继承均属于设计型模块,并无实际的模块内容
不同点:
聚合是在当前模块中配置关系,聚合可以感知到参与聚合的模块有哪些
继承是在子模块中配置关系,父模块无法感知哪些子模块继承了自己
自定义属性
作用: 等同于定义变量,方便统一维护
<properties> <spring.version>5.1.9.RELEASEspring.version> <junit.version>4.12junit.version> properties> <dependency> <groupId>org.springframeworkgroupId> <artifactId>spring-contextartifactId> <version>${spring.version}version> dependency>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
内置属性
作用: 使用maven内置属性,快速配置
${basedir} ${version}
- 1
- 2
- 3
Setting属性
作用: 使用maven配置文件setting.xml中的标签属性,用于动态配置
${settings.localRepository}
- 1
- 2
Java系统属性
作用: 读取java系统属性
${user.home} mvn help:system
- 1
- 2
- 3
- 4
环境变量属性
作用: 使用maven配置文件setting.xml中的标签属性,用于动态配置
${env.JAVA_HOME} mvn help:system
- 1
- 2
- 3
- 4
SNAPSHOT(测试阶段版本)
项目开发过程中,为方便团队成员合作,解决模块间相互依赖和时时更新的问题,开发者对每个模块进行构建的时候,输出的临时性版本叫快照版本(测试阶段版本)
快照版本会随着开发的进展不断更新
RELEASE(发布版本)
项目开发到进入阶段里程碑后,向团队外部发布较为稳定的版本,这种版本所对应的构件文件是稳定的,即便进行功能的后续开发,也不会改变当前发布版本内容,这种版本称为发布版本
约束规范
<主版本>.<次版本>.<增量版本>.<里程碑版本>
主版本:表示项目重大架构的变更,如: spring5相较于spring4的迭代 次版本:表示有较大的功能增加和变化,或者全面系统地修复漏洞
增量版本:表示有重大漏洞的修复
里程碑版本:表明一个版本的里程碑(版本内部)。这样的版本同下一个正式版本相比,相对来说不是很稳定,有待更多的测试>示例:5.1.1.RELEASE
配置文件应用pom属性
作用: 在任意配置文件中加载pom文件中定义的属性
${jdbc.url} <resources> <resource> <directory>${project.basedir}/src/main/resourcesdirectory> <filtering>truefiltering> resource> resources>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
多环境配置
<profiles>
<profile>
<id>pro_envid>
<properties>
<jdbc.url>jdbc:mysql://127.0.0.1:3306/ssm_dbjdbc.url>
properties>
<activation>
<activeByDefault>trueactiveByDefault>
activation>
profile>
<profile>
<id>dev_envid>
<properties>
<jdbc.url>jdbc:mysql://127.2.2.2:3306/ssm_dbjdbc.url>
properties>
profile>
profiles>
作用: 加载指定环境配置
执行构建命令并指定加载对应环境配置信息
mvn 指令 –P 环境定义id mvn install -p pro_env
- 1
- 2
- 3
- 4
命令
mvn 指令 -D skipTests
ps: 执行的指令生命周期必须包含测试环节
操作按钮

<plugin>
<artifactId>maven-surefire-pluginartifactId>
<version>2.22.1version>
<configuration>
<skipTests>trueskipTests>
<includes>
<include>**/User*Test.javainclude>
includes>
<excludes>
<exclude>**/User*TestCase.javaexclude>
excludes>
configuration>
plugin>
安装
Nexus
nexus.exe /run nexus
http://localhost:8081
修改基础配置信息
安装路径下etc目录中nexus-default.properties文件保存有nexus基础配置信息,例如默认访问端口 ,修改端口号
修改服务器运行配置信息
安装路径下bin目录中nexus.vmoptions文件保存有nexus服务器启动对应的配置信息,例如默认占用内存空间
宿主仓库(自己的仓库)
保存无法从中央仓库获取的资源
自主研发
第三方非开源项目
代理仓库 proxy
代理远程仓库,通过nexus访问其他公共仓库
仓库组group
将若干个仓库组成一个群组,方便获取数据
仓库组不能保存资源,设计型仓库
上传的信息
访问私服的用户名和密码
上传的位置(宿主地址)
<servers>
<server>
<id>heima-releaseid>
<username>用户名username>
<password>密码password>
server>
<server>
<id>heima-snapshotsid>
<username>用户名username>
<password>密码password>
server>
servers>
<mirrors>
<mirror>
<id>nexus-heimaid>
<mirrorOf>*mirrorOf>
<url>http://localhost:8081/repository/maven-public/url>
mirror>
mirrors>
- 访问私服的用户名和密码
- 下载的仓库组地址
- 下载的地址配置到本地地址
- 上传的地址配置到工程地址
标签:distributionManagement
<distributionManagement>
<repository>
<id>heima-releaseid>
<url>http://localhost:8081/repository/heima-release/url>
repository>
<snapshotRepository>
<id>heima-snapshotsid>
<url>http://localhost:8081/repository/heima-snapshots/url>
snapshotRepository>
distributionManagement>
http://localhost:8081/repository/maven-public/
- 访问私服的用户名和密码
- 下载的仓库组地址
- 下载的地址配置到本地地址
- 上传的地址配置到工程地址
标签:distributionManagement
<distributionManagement>
<repository>
<id>heima-releaseid>
<url>http://localhost:8081/repository/heima-release/url>
repository>
<snapshotRepository>
<id>heima-snapshotsid>
<url>http://localhost:8081/repository/heima-snapshots/url>
snapshotRepository>
distributionManagement>