1.maven的作用
maven:项目管理工具,与vue-cli脚手架程序作用一样。
vue-cli脚手架程序,maven分别属于前端与后端的项目管理工具(也是创建项目,项目依赖包,编译,打包,部署).
(前端依赖js包,后端依赖jar包。)
(npm service build 前端的编译指令)
类似于maven的工具:ant,maven,gradle
2.maven中的几个概念
远程服务器,指互联网其他地方的服务器,不载本地局域网下。
本地开发机,面前的这台电脑。
maven中央服务器(中央仓库):管理了各种maven资源包(骨架,插件包,依赖包),并对外提供接口供全球开发人员下载使用.
(相当于tomcat的web服务器。)
(骨架:不同的类型的项目,目录结构不同。我们学习web程序开发,目录结构:src目录下放源代码,web目录下的WEB-INF下放jar包,resources目录下放配置文件。安卓开发的,没有web包,有自己的视图文件包。骨架就是不同行业的项目开发提供了不同的项目模板,有不同的文件夹,不同的文件夹放不同的内容。)
maven客户端:安装本地开发机,通过maven客户端向中央仓库发送资源下载请求,把下载到本地的资源保存到配置好的本地路径.
(java语言写的。直接写死了中央仓库的地址,连着中央服务器,下载资源到本地开发机。)
(maven客户端从外网的中央服务器下载资源有以下问题:1.慢,不稳定,可能丢包 。为了解决这个问题,每家公司都有自己的maven企业私人服务器,通过nexus搭建。之后私服连接中央服务器,下载资源,同步资源。客户端程序配置镜像地址,指向企业私服下载,这样就快又稳定。)
maven企业私服:通过nexus搭建的企业mavne服务器,局域网内使用,又快又稳定,私服定期同步中央仓库的资源到服务器.
(国内知名互联网公司,将私服对外提供,供国内人员使用。)
maven资源坐标:通过groupid,artifactid,version三个维度来描述一个资源的名称,避免同名.
(maven中央仓库的jar包是全球个人开发者,开源组织,把自己写好的组件包提交上去而来的。为了防止资源重名,通过坐标命名。由组织名,项目名,版本号一起来作为资源命名。比如阿里巴巴下的fastjson的某个版本号)
maven客户端本地仓库:在客户端程序中可以配置本地开发机的路径地址.用来保存从mavne服务器下载下来的各种jar包资源.
(某客户端程序,做A项目,下载了fastjson包,做B项目又需要这个包。为了避免重复下载jar包,maven客户端可以配置本地仓库地址,比如D://repostiroy是存放jar包的目录。不再像之前,将jar包放在lib文件夹下。之后每个项目去引入某个目录的jar包即可)
3.安装maven客户端
其实idea自带maven
1.解压缩
2.配置conf/settings.xml
3.配置本地仓库(55行) <localRepository>D:\apache-maven-3.6.0\repository</localRepository> 根据该行去新建目录,保证路径一致。 之后下载的所有jar包都在该文件夹 4.配置镜像(190行) 在教室用这个 <mirror> <id>nexus-javasm</id> <mirrorOf>central</mirrorOf> //对哪个地址镜像,central是中央仓库的id <url>http://192.168.20.252:8081/repository/maven-public/</url> //镜像地址 </mirror> 在家连这个 <mirror> <id>nexus</id> <mirrorOf>*</mirrorOf> <url>https://maven.aliyun.com/repository/public</url> </mirror>
5.配置环境变量
MAVEN-HOME:安装路径 PATH:%MAVEN_HOME%\bin 6.测试环境变量配置: mvn -version
出现这个则配置成功,之后可在cmd敲mvn指令(没用),主要是第四阶段,通过mav指令对下载的源码资源编译。
maven客户端的操作方式:
1.cmd窗口下,运行mvn 命令;
2.在IDEA开发工具下操作maven客户端,此时需要idea关联maven本地客户端
4.idea关联本地客户端
选择自己安装maven的目录。
但这样配置的maven只对当前项目有效。
Other Settings---Default Settings(默认配置,即对新项目启用的配置)
2021版idea
然后再来一次
5.创建maven项目
new----project----选择maven
选择的是java工程。若是web工程,则选择webapp
archetype骨架
新建的mavaen也有三个坐标
(组织名,项目名,版本号。测试版本号带-SNAPSHOT,正式版本号直接数字)
新版idea,将老版下一步的存储位置也放在一个页面
第一次新建项目需要下载资源,下载到了D:\apache-maven-3.6.0\repository
之后再创建相同的工程,基本不再下载资源。
这里再新建个web工程...
选择官方骨架:
java工程:maven-archetype-quickstart
web工程:maven-archetype-webapp
注:若新建项目里出现某些jar包找不到:(三选一)
1.更换maven版本(比如idea2018对应maven3.360;若idea2020用maven3.360就会版本不兼容)
2.或者更换idea版本,经典版本还是2018
3.或者勾选试试
6.项目目录结构
maven的目录结构是固定的:
src/main/java:放java源代码
src/main/resources:放配置文件
src/main/webapp:放web资源(.html,.vue,.js.css.jpg.png)
src/test/java:放测试代码
maven在编译时,配置文件只会在src的resources找;源代码只会在src的java下找...
7.修改骨架错误,自定义骨架
(其实并非骨架有错,而是idea的问题。比如java工程中的resources文件夹是空的。idea会将空文件夹移除。)
1.修改骨架
先看java工程
1.从官方骨架创建的项目,缺失了文件夹,需要自己补全.补全以后,确保每个文件夹下都有个文件.
在src.main下新建resources包
(新建目录后,在目录下随便来个配置文件,别让空着)
再看web工程
同样补全: