1.回顾MAVEN基础知识
依赖管理 : 自动管理jar包
一键构建 : 通过maven内置的一系列的命令
complie
package
install
clean
test
1.1 maven的仓库
本地仓库,中央仓库,远程仓库(私服)
2 maven的基础知识
2.1 默认配置
[外链图片转存失败(img-FZbFaSrk-1569153376367)(images/1569135411339.png)]
2.2 依赖传递
依赖传递 : A依赖于B,B依赖于C, A依赖于C
2.2.1 依赖冲突
[外链图片转存失败(img-j1H2PVUp-1569153376368)(images/1569135768616.png)]
2.3 解决依赖冲突
2.3.1 约定(依赖调解原则)
- 第一声明优先原则 : 以先声明的依赖为准
- 路径近者优先原则 : 查找响应坐标的路径
2.3.2 排除依赖
[外链图片转存失败(img-6DVVP6XN-1569153376368)(images/1569136323338.png)]
排除依赖: 通过在定义依赖关系的时候,以exclusions结合exclusion排除
-
groupId: 公司或组织名
-
artifactId: 项目名称
2.3.3 锁定版本号
<!--定义版本号常量-->
<properties>
<!--定义版本号的常量-->
<henlihai>4.2.4.RELEASE</henlihai>
</properties>
<!--锁定版本号 : 不会导入任何依赖-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${henlihai}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${henlihai}</version>
</dependency>
</dependencies>
</dependencyManagement>
<!--导入依赖: 由于已经锁定了版本号,定义依赖的时候不需要指定版本-->
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
</dependencies>
- properties: 定义公共的版本号常量
- <自定义的字符串></自定义的字符串>
- 使用此版本: ${自定义的字符串}
- dependencyManagement : 锁定需要的版本号
- 只锁定版本,不会导入依赖
- dependencies: 引入依赖
- 由于已经锁定了版本,不需要指定版本号
3 聚合工程(重点)
3.1 相关概念
[外链图片转存失败(img-8TyCaA7y-1569153376369)(images/1569138708988.png)]
3.2 在IDEA中创建聚合工程
-
创建一个maven工程( 父工程 )
- 在父工程中使用
<packaging>pom</packaging>
描述
- 在父工程中使用
-
在父工程中,创建子模块(module)
- 和创建maven工程类似
[外链图片转存失败(img-zrDz10o4-1569153376370)(images/1569139133870.png)]
-
在子模块中配置依赖关系
3.3 SSM整合
-
ssm_dao
- 实体类
- dao层接口
- mybatis的配置文件( sqlMapConfig.xml, sql映射文件 )
- 和数据库操作的相关代码
-
ssm_service
- serivce代码( 事务)
- 事务控制的配置文件
-
ssm_web
- controller代码
- web.xml
- springmvc.xml配置文件
3.3.1 整合步骤
- 保证mybatis可以独立运行( 搭建mybatis环境)
- 实体类,dao接口,配置文件
- 保证spring可以独立运行(搭建spring环境)
- 测试spring容器
- 整合mybatis与spring
- 配置mybatis的相关对象,交给spring容器管理( sqlSessionFactory,dataSource, 扫描器)
- service事务配置
- 保证springmvc可以独立运行( 搭建mvc环境)
- 配置springmvc的配置文件(视图解析器,驱动)
- 配置web.xml ( dispatcherServlet, 过滤器 )
- 编写controller( 页面跳转 )
- 页面
- SSM整合
3.3.2 用户数据库表
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`password` varchar(32) NOT NULL COMMENT '密码',
`username` varchar(32) NOT NULL COMMENT '用户名称',
`birthday` datetime DEFAULT NULL COMMENT '生日',
`sex` char(1) DEFAULT NULL COMMENT '性别',
`address` varchar(256) DEFAULT NULL COMMENT '地址',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=utf8
4 私服(了解)
仓库的类型 (本地仓库,中央仓库,远程仓库(私服))
[外链图片转存失败(img-NCXJTfzo-1569153376370)(images/1569146511494.png)]
访问私服的url地址: http://localhost:8081/nexus/
默认的用户名 admin/admin123
4.1 将工程上传到私服
4.1.1 maven的配置文件setting设置私服路径
4.1.2 工程中配置私服
[外链图片转存失败(img-pwt49kHD-1569153376370)(images/1569147294937.png)]
在需要发布的工程上,执行deploy命令
4.2 使用私服中的jar包
从私服中下载jar包到本地仓库
在maven的setting.xml中配置,私服地址
(1)在maven安装目录的conf文件中的settings配置文件中配置profile
<profile>
<!--profile的id -->
<id>dev</id>
<repositories>
<repository> <!--仓库id,repositories可以配置多个仓库,保证id不重复 -->
<id>nexus</id> <!--仓库地址,即nexus仓库组的地址 -->
<url>http://localhost:8081/nexus/content/groups/public/</url> <!--是否下载releases构件 -->
<releases>
<enabled>true</enabled>
</releases> <!--是否下载snapshots构件 -->
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories> <!-- 插件仓库,maven的运行依赖插件,也需要从私服下载插件 -->
<pluginRepository> <!-- 插件仓库的id不允许重复,如果重复后边配置会覆盖前边 -->
<id>public</id>
<name>Public Repositories</name>
<url>http://localhost:8081/nexus/content/groups/public/</url>
</pluginRepository>
</pluginRepositories>
</profile>
(2)激活profile
<activeProfiles>
<activeProfile>dev</activeProfile>
</activeProfiles>
4.3 将一个已经存在的jar包存入本地仓库或者私服
存入本地仓库
使用命令行进入到jar包所在的目录,使用一下命令操作
mvn install:install-file -DgroupId=cn.itheima -DartifactId=heima107 -Dversion=5.2.1 -Dfile=heima107.jar -Dpackaging=jar
向本地仓库安装jar包
-DgroupId指定: 公司或组织名称
-DartifactId 指定 项目名
-Dversion : 指定版本号
-Dfile : jar包路径
-Dpackaging: 打包方式
存入私服
使用命令行进入到jar包所在的目录,使用一下命令操作
mvn deploy:deploy-file -DgroupId=cn.itheima -DartifactId=heima107 -Dversion=5.0.0 -Dpackaging=jar -Dfile=heima107.jar -Durl=http://localhost:8081/nexus/content/repositories/thirdparty/ -DrepositoryId=thirdparty
-Durl : 私服的地址
-DrepositoryId : 指定私服的仓库
ll
mvn deploy:deploy-file -DgroupId=cn.itheima -DartifactId=heima107 -Dversion=5.0.0 -Dpackaging=jar -Dfile=heima107.jar -Durl=http://localhost:8081/nexus/content/repositories/thirdparty/ -DrepositoryId=thirdparty
-Durl : 私服的地址
-DrepositoryId : 指定私服的仓库