Maven:
一个用于自动化构建项目和管理项目依赖的工具
自动化构建项目:
按照企业中主流的模板,创建完善的项目结构
管理项目依赖:
配置式添加和管理,自动下载和导入
配置
1.全局配置:settings.xml
2.项目配置:pom.xml
3.配置级别
(项目配置)pom.xml > (用户配置)settings.xmlnote > (全局配置)settings.xml
版本号的意义
软件名称.主版本号.小版本号.阶段版本号.字母版本号
1.主版本号更新:软件重大功能新增和修改
2.小版本号更新:子版本号,小功能新增和修改
3.阶段版本号更新:BUG修复
4.字母版本号更新:表示里程碑意义的变动
使用命令构建Maven项目
1.参数
2.创建命令
3.执行main方法
创建maven项目骨架命令
依赖的范围管理
父项目依赖传递
1.父项目的打包方式必须是pom
<packaging>pom</packaging>
2.优点
父子项目,合理有效的复用依赖jar包。子项目相互独立,更加便于敏捷开发和独立管理
3.缺陷
项目之间的系统集成性能较差,不可以做整体打包
聚合项目管理
项目之间的整体性较高,便于系统集成和维护。可以做整体打包
JavaWeb项目
以Java语言为核心,结合了前端技术、数据库技术、网络服务器等等相关的技术,来构建出来的全站应用。
依赖冲突
第一种情况:直接冲突
第二种情况:传递冲突
maven内建变量
${basedir}表示项目根目录,即包含pom.xml文件的目录;
${version}表示项目版本;
${project.basedir}同${basedir};
${project.baseUri}表示项目文件地址;
${maven.build.timestamp}表示项目构件开始时间;
${maven.build.timestamp.format}表示属性${maven.build.timestamp}的展示格式,默认值为yyyyMMdd-HHmm,可自定义其格式,其类型可参考java.text.SimpleDateFormat。
${project.build.directory}表示主源码路径;
${project.build.sourceEncoding}表示主源码的编码格式;
${project.build.sourceDirectory}表示主源码路径;
${project.build.finalName}表示输出文件名称;
${project.version}表示项目版本,与${version}相同;
${project.xxx} 当前pom文件的任意节点的内容
${env.xxx} 获取系统环境变量。
${settings.xxx} 指代了settings.xml中对应元素的值。