目录
#【1】Maven简介
项目使用开源jar包,又需要使用同事的模块
开源升级,假设需要版本不同(mybatis升级,junit需要升级 ,而没有升级)
同事中模块版本升级,你继续开发
1、jar包不兼容
2、开发在win上,linux上安装,
maven事用java语言开发的管理的工具,将项目和管理过程抽象成一个对象:pom(面向对象的思想)
pom.xml核心文件,
pom.xml——项目对象模型(pom)——依赖管理()——本地——私服——中央仓库
<构建生命周期>——<插件>
对象的属性:?
对象的行为:?
下图蓝色范围里的是需要我们管的
作用:
项目构建
依赖管理
统一开发结构:提供标准的结构
#【2】maven下载与安装
⚫ http://maven.apache.org/
⚫ http://maven.apache.org/download.cgi
解压选择自己的目录就行
bin:核心运行文件 ——bin/mvn.cmd文件 配置需要了JAVA_HOME MAVEN_HOME
boot文件
conf配置管理
lib:运行需要的jar包
配置MAVEN_HOME环境变量和path
mvn -v 测试
#【3】Maven基础概念
c盘个人账户 .m2文件夹是因为执行了mvn命令生成的,是本地仓库,存放jar包
setting文件修改仓库位置
maven本身有一个配置文件配置了下载时的中央仓库
配置镜像
全局setting和用户setting
上面属于全局
#【4】第一个maven项目(手工)
工程结构
构建命令
插件创建过程
手动在文件创建中创建此目录
两个java下添加com文件夹it文件夹huawei文件夹
去lib里面的jar包找到一个pom文件、放到同级src
项目构建
mvn 开头 后面添加功能参数 一次课多次执行命令,使用空格分离
win+r cmd
到项目文件夹下
编译:mvn compile 【target编译的结果】
清理:mvn clean 【去掉完成的target目录】
测试:mvn test【对test文件夹的进行测试】
打包:mvn package 【打包后的jar放在target目录下】【编译、测试编译、测试】
安装:mvn install 【把打包的的放到本地仓库】直接安装—groupid决定了放的位置
如果时com.ithuawei。就会生成本地仓库的com文件夹下
idea没有打包,idea在本地编译,mvn可以在linux环境执行编译
mvn 安装别人给的jar包
spring的jdbc :ojdbc6.jar
1.首先将本地jar包放在D:\IDEA下
2.配置pom.xml(不能够自动下载jar包)
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>6</version>
</dependency>
3.命令行执行如下:
mvn install:install-file -Dfile=D:\IDEA\ojdbc6.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=6 -Dpackaging=jar
运行成功如下:
插件创建工程
Java工程
mvn archetype:generate -DgroupId=com.itheima -DartifactId=java-project - DarchetypeArtifactId=maven-archetype-quickstart -Dversion=0.0.1-snapshot - DinteractiveMode=false
web工程
mvn archetype:generate -DgroupId=com.itheima -DartifactId=web-project - DarchetypeArtifactId=maven-archetype-webapp -Dversion=0.0.1-snapshot -DinteractiveMode=false【webapp运行程序的】
maven工程
mvn archetype:generate -DgroupId={project-packaging} -DartifactId={project-name} -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
#【5】idea中创建maven项目
idea 配置settting配置maven的地址仓库
创建项目
执行命令
test 运行0个
没有加@test注解
执行源码
测试源码
设置环境
#【6】使用原型骨架模板创建
新建maven 使用qu'ickstart模板
新建web工程 webapp模板
自己添加java resources test java resources文件夹
——————
启动 添加tomcat插件
删除原有pom的插件
<build>构建
<plugins>设置插件
<plugin>插件位置
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>配置
<port>80</port>配置端口
<path>/</path>配置路径
</configuration>
</plugin>
</plugins>
</build>
刷新之后
执行run
可访问控制台出现的url路径
#【7】依赖管理
依赖配置:导入依赖
依赖传递:使用自己写的依赖:【项目2用项目3、项目3有其他依赖。项目2就有其他依赖】
可选依赖:对外隐藏依赖
排除依赖:不想用引入依赖的引用依赖
依赖范围:
依赖传递:
冲突:
层级最近优先
曾经一样:后配覆盖前面的
可选依赖
排除依赖
依赖范围
假设给mybatis配置范围test main里面就不能导入相关包。
能被打包的就能被传递
#【8】生命周期和插件
compile、 test-compile、 test、 package、 install
————————————
—————————————
——————————
——————————————
执行下面的会把上面的都执行
自定义插件 指定在上面的某个阶段执行这个插件的动作
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.2.1</version>
<executions>
<execution>
<goals>
<goal>jar</goal>
<goal>test-jar</goal>
</goals>
<phase>generate-test-resources</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
回到最初的起点
高级篇
#【1】 分模块开发和设计
实际项目分模块各有不同 基本都是按服务类型区分
链接:https://pan.baidu.com/s/1NOqxpE4hp9OP8FWkyNGp-A
提取码:0b45
pojo 不需要任何依赖 安装依赖到本地仓库
dao 不需要mvc依赖 导入pojo依赖
service:使用原始pom文件啊去掉不要的文件 添加pojo dao的依赖
#【2】模块聚合
dao更新了其他不知道
创建一个ssm的maven项目什么也不要只要pom文件。
聚合的目的 是所有被聚合的模块同事同时执行一个操作 例如install
注意事项:根据依赖关系来执行
——————————————————————————————————————————
#【3】 继承
两个模块用的不要版本的依赖(假设spring)
使用父模块来管理
子模块:
父模块:
子模块的使用:
#【4】 属性
属性:相当于变量 统一管理
读取配置setting文件
Java系统属性
环境变量属性
#【5】 版本管理
父模块直接改
子模块使用自己的版本更改 或者没有定义自己的版本 继承了父版本的 复制版本出来改
#【6】 资源配置
在配置文件中使用pom文件中配置的属性
需要写在bulid里面
上面xml需要配置<jdbc.url> </jdbc.url>
<derectory>../src/main/resources</derectory>
<derectory>${project.basedir}/src/main/resources</derectory>
#【7】 多环境开发测试
学到24集
#【8】
#【9】
#【10】
#【11】