-
Maven
Maven
- 什么是 Maven ?
- Maven 是Apache 基金下的个 Java 平台的项目自动化构建工具,基于
项目对象模型(POM)
- Maven 可以作什么
- 自动管理 jar 包之间的依赖关系
- 根据
坐标
获取第三方 jar 包
- 项目多模块管理
- 构建项目
- 构建项目的环节
清理
(clean):删除以前的编译结果,为重新编译做好准备
编译
(compile):将Java 源程序编译为字节码文件测试(test):针对项目中的关键点进行测试,确保项目在迭代开发过程中关键点的正确性
报告
:在每一次测试后以标准的格式记录和展示测试结果
打包
(package):将一个包含诸多文件的工程封装为一个压缩文件用于安装或部署。Java 工程对应 jar 包,Web工程对应 war 包。
安装
(install):在 Maven 环境下特指将打包的结果——jar 包或 war 包安装到本地仓库中。
部署
(deploy):将打包的结果部署到远程仓库或将 war 包部署到服务器上运行。
- Maven 常用命令
- mvn -version/-v —— 显示版本信息
- mvn clean —— 清空生成的文件
- mvn compile —— 编译mvn test —— 编译并测试
- mvn package —— 生成target目录,编译、测试代码,生成测试报告,生成jar/war文件
- mvn site —— 生成项目相关信息的网站
- mvn clean compile —— 表示先运行清理之后运行编译,会将代码编译到target文件夹中
- mvn clean package —— 运行清理和打包
- mvn clean install —— 运行清理和安装,会将打好的包安装到本地仓库中,以便其他的项目可以调用
- mvn clean deploy —— 运行清理和发布
- Maven 依赖范围
compile
默认范围,编译
测试
运行
都有效,会打入包中
provided
编译
和测试
有效,运行期不需要提供,不会打入包中。比如 javax.servlet ,当项目部署时Web容器自带servlet,所以不需要在运行时生效
runtime
:测试
和运行
有效,需要打入包中
test
:测试
有效,Junit,不会打入包中
system
:编译
和测试
都有效,由于关联本机,所以可移植性差
- 统一依赖管理 jar包 的版本
properties
统一声明版本号,dependices中引用声明的版本号
- 多模块项目,父工程统一管理其他模块的公共依赖,子工程模块以与父工程是
聚合
关系,在父工程的module
中
- 依赖冲突解决方法
- Maven 自动处理依赖冲突:
最短路径优先
和相同路径,先声明优先
- 手动处理依赖冲突:使用
exclusion
排除不需要的依赖
- Maven
生命周期
,Clean、Default、Site
- 三套生命周期
相互独立
,每个生命周期对应自己的几个阶段
- 特定某个生命周期,运行任何一个阶段,它前面所有阶段都会运行
Gradle 与 Maven
- Gradle特性
- 比 Maven 粒度更小,Maven是POM模型,而Gradle每个Project对象还可以划分为Task
- gradle 比 Maven 更灵活,依赖导入与管理简单,可读性强。
- DSL语法,Groovy动态语言,闭包,钩子函数
- 但是使用Gradle需要额外学习语法,有一定的学习曲线
- Gradle 生命周期介绍
- Initialization(初始化阶段),通过
settings.gradle
判断有哪些项目需要进行初始化,加载所有需要初始化的项目的build.gradle
文件并为每个项目创建project
对象
- Configuration(配置阶段),
扫描
各项目下的build.gradle
脚本,对project
进行配置(执行哪些任务,运行哪些插件,执行哪些逻辑),并且构造Task 任务关系依赖图
以便在执行阶段按照依赖关系执行Task中的配置代码(如println方法)
- Execution(执行阶段),通过配置阶段的 Task 图,按顺序执行需要执行的 任务中的动作代码,就是执行
doFirst
或doLast
等代码
- Gradle快的原因
- 项目启动时,会开启一个client,然后启动一个daemon,通过client向daemon收发请求,项目关闭,client关闭,daemon保持启动,有类似项目再次部署时,会直接通过新的client访问已经启动的daemon,所以速度很快,默认daemon不使用3小时后关闭;不同项目兼容性考虑,也可使用
--no-daemon
启动项目,就没有速度优势了
- 支持Groovy的动态脚本语言。核心是Project与Task。项目启动时,会启动一个
Client
和一个deamon
,每个project实例有变动时,client会直接给daemon
-
相关阅读:
轮播图
MySQL初认识
css的动画
jQuery 滚动监听总结
DOM操作 练习
Ajax总结
日历 练习
Jquery基础
2018-07-14Java基础+基本数据类型+自动/强制数据类型转换+定义变量+运算符
2018-07-13E-R图设计数据库+三大范式+修改用户密码+分配用户权限
-
原文地址:https://www.cnblogs.com/luckyCoder/p/12743284.html
Copyright © 2020-2023
润新知