maven(2022-09-29)
Maven:项目构建工具,主流
整个项目架构,source,resource,test,testresource
依赖:导入的jar包。
对项目进行打包。
apache基金会
作为一个java程序员,有必要连接一下apache的官网命名规则。
项目.apache.org。
配置环境变量:
和JAVA,JDK基本一样。
新建MAVEN_H0ME:maven的安装路径
编辑PATH:新建一个%MAVEN_HOME%\bin
通过CMD:mvn -v测试配置是否成功
这个环境变量,说实话,用处不是很大,不配也没什么大问题!
Maven解压后:
conf目录,配置目录,在这个目录下有一个settings.xml,Maven的核心配置文件。
maven会自动给我们下载jar包!
在我们的JavaWEB阶段,所有的jar包都是我们下载好复制粘贴到我们的项目里。我们在使用框架开发的过程中,会导入非常多的jar包,jar包要统一管理,“版本”,这些jar包是怎么下载的,从哪下载的?
Mysql驱动从哪里下载?
我给你们的所有的jar包,同时我通过maven下载下来的!
最终我们的项目是要打包放到服务器上的!
这些jar包也得跟着一起放上去。
加入说我们的项目需要100个jar包,都复制粘贴到项目里。1M,100M。
我们现在要做的是把这些jar包放在本地,不往项目里导,通过某种方式连接到这些jar包。
通过一个配置文件,找到这些jar包,最终我们往服务器上部署项目的时候,只需要部署我们的源码,和这个配置文件。
1、这些jar包我要让他们保存在哪?
仓库是干什么的?存东西的!
我们通过maven下载的依赖都放在这个位置。需要手动创建这个目录。不要用中文
maven可以联网下载依赖,去哪个网下载?
默认情况下是去maven的中央仓库!在美丽国!
除非你的电脑做了特殊配置,否则基本上下不下来。
可以做一个镜像,阿里云maven镜像仓库,需要配置阿里云镜像仓库
实际上,各大编程工具已经内置了maven,当我们第一次创建maven工程时,会联网自动下载一些Maven本身需要的依赖。
src
main---源码
java---源码.java
resources---资源文件
test---测试源码
java---测试源码.java
resources---测试资源文件
pom.xml就是我们上面说的那个配置文件,来管理依赖的。
maven生命周期
target目录:存放编译后的java文件
默认(default)真正进行项目编译打包等工作阶段
1、validate:验证项目是否正确
2、compile:编译,编译项目的源代码*****
3、test:测试,junit这些测试不应该要求代码被打包或部署
4、package:进行打包。*****
java工程-------.jar
javaweb工程----.war
5、verify:验证,对集成测试结果执行检查
6、install:安装*****
所有的项目都可以编程jar包(依赖)
7、deploy:部署,将最终的包赋值到远程存储库,和其他开发人 员共享(maven私服)
清理(clean)执行必要的清理工作。删除target文件夹
站点(site)生成项目报告,站点,发布站点(基本不用)
Maven坐标:
GroupId:团体组织标识符,它一般情况下以创建这个组织的名称的逆向域名开头。
ArtifactId:项目名。单独项目的唯一标识符。
Version:版本
通过这三个向量来定位Maven仓库中其jar包所在的位置,把对应的jar包引入到工程中。
依赖范围:
compile:默认。编译范围,编译,测试,运行都有效。参与打包,安装。
test:测试范围,只有在test范围下才能用,不参与打包,安装。
provided:编译和测试,不参与打包,安装。
runtime:运行,只参与运行。
system:废弃。系统。
import:废弃。引入。
依赖的传递:(常识性问题)
假如demo01中引入了mysql,servlet,fastjson,codec依赖,我把demo01install到了我的本地仓库,或者是maven私服,如果其他成员通过GAV引入了我的demo01,demo01中的mysql,servlet,fastjson,codec会不会一起引入进来???
会!!!!!
Gradle:安卓领域,据说未来会取代maven
Ant:淘汰
原文地址:https://www.cnblogs.com/369-1/p/16743034.html
- WordPress主题开发:添加主题更新提醒功能
- ASP.NET2.0应用中定制安全凭证之实践篇
- Kaggle大神带你上榜单Top2%:点击预测大赛纪实(下)
- WordPress主题后台选项开发框架 Options Framework 介绍
- vc++ 在程序中运行另一个程序的方法
- 为Options Framework主题后台框架添加后台侧边栏
- ClistCtrl用法及总结(由怎样隐藏ListCtrl列表头的排序小三角形这个bug学习到的知识)
- 弹出式模态窗体选择文本控件
- zookeeper 分布式锁服务
- QT Creator 快速入门教程 读书笔记(三)
- WordPress中添加自定义评论表情包的方法(附三套表情包下载)
- 使用新类型Nullable处理数据库表中null字段
- QT Creator 快速入门教程 读书笔记(二)
- 设计模式学习笔记-命令模式
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- RTSP协议视频平台EasyNVR如何将静态广告位修改为动态广告位?
- keeplive+mysql+drbd高可用架构安装步骤
- IP摄像头RTSP协议视频平台EasyNVR录像列表没有按照开始时间倒序排序的问题修复
- leetcode哈希表之两数之和
- Linux系统下Tomcat8启动速度很慢的解决方法
- Linux下查看binlog文件创建时间的命令
- Linux下修改文件权限(所有权)
- Sticks(UVA - 307)【DFS+剪枝】
- Linux CentOS服务器搭建与初始化配置教程
- Centos6.9安装vsftpd并配置多用户的方法
- linux c下log输出代码模板示例代码
- linux adsl 拨号自动配置脚本的方法
- Python调用ip代理案例,快代理api调用demo
- centos7(redhat7)如何卸载自带yum并且安装国内yum源的方法
- linux用户组以及权限总结