maven简介
maven定义
- 自动构建工具
- make–>ant–>maven–>gradle
- 项目管理工具
- 将项目拆分成若干个模块,或者说将若干个小项目整合成一个大项目,每个小项目当作大项目的模块存在
- 管理jar包之间的关系,并自动增加/下载第三方依赖
仓库/坐标
- 仓库
- Maven仓库用来存放Maven管理的所有Jar包。分为:本地仓库 和 中央仓库。
本地仓库:Maven本地的Jar包仓库。
中央仓库: Maven官方提供的远程仓库。
远程仓库: 可以理解为公司使用的maven服务器。- Maven首先从本地仓库中寻找项目所需的Jar包,若本地仓库没有,再到Maven的中央仓库下载所需Jar包。
- 坐标
- 是Jar包的唯一标识,Maven通过坐标在仓库中找到项目所需的Jar包,用于jar包定位
- groupId:所需Jar包的项目名
- artifactId:所需Jar包的模块名
- version:所需Jar包的版本号
<dependency>
<groupId>cn.missbe.web.search</groupId>
<artifactId>resource-search</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
</dependency>
生命周期
- 清理:删除上次编辑的结果,为下次编译做准备
- 编译:Java—>class
- 测试:运行项目test目录下的单测代码
- 报告:将测试的结果进行展示
- 打包:将项目的多个文件压缩打包成1个文件,便于部署。(Java项目–>jar,Web项目–>war)
- 安装:将打好的包放在本地仓库,供其他项目使用
- 部署:将打好的包放在服务器上运行
archetype
- archetype : Maven 插件,准确说是一个项目模板,它的任务是根据模板创建一个项目结构。
maven配置和使用
下载安装
- 下载
- 地址:http://maven.apache.org/download.cgi, 一般使用带bin的已编译版本即可,unix环境下载带tar的版本。
- 环境变量
# ~/.bash_profile
MAVEN_HOME="/Library/maven/apache-maven-3.6.3"
PATH=$MAVEN_HOME/bin:$PATH
测试
$ mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /Library/maven/apache-maven-3.6.3
Java version: 15.0.1, vendor: N/A, runtime: /usr/local/Cellar/openjdk/15.0.1/libexec/openjdk.jdk/Contents/Home
Default locale: zh_CN_#Hans, platform encoding: UTF-8
OS name: "mac os x", version: "10.15.7", arch: "x86_64", family: "mac"
镜像配置
修改
${maven.home}/conf
或者${user.home}/.m2文件夹下
的settings.xml
文件,在标签下加入上述内容即可
<mirrors>
<!-- 阿里云仓库 -->
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
<!-- 中央仓库1 -->
<mirror>
<id>repo1</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo1.maven.org/maven2/</url>
</mirror>
<!-- 中央仓库2 -->
<mirror>
<id>repo2</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo2.maven.org/maven2/</url>
</mirror>
</mirrors>
新建工程和maven
- 创建project
- 创建maven项目
maven 目录结构
dubbo-provider-demo
├── dubbo-provider-demo.iml
├── pom.xml # 核心配置,描述了包坐标和依赖关系
└── src # 项目的资源总目录,源码
└── main # 主程序
│ ├── java # 存放java源文件
│ ├── resources # 存放框架或其他配置的文件
│ └── webapp # 前端部分及静态文件
│ ├── WEB-INF # Java WEB应用的安全目录。服务端可以访问,客户端访问需特殊配置
│ │ └── web.xml # 配置文件,用来沟通后端的桥梁
│ └── index.jsp #
└── test # 测试资源目录
├── java # 存放测试源文件
└── resources # 存放测试资源文件
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.dmall</groupId>
<artifactId>dubbo-provider-demo</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
</project>
- 修改pom.xml文件依赖后刷新使之生效
- 双击打开pom.xml,右键选择 Add as Maven Project
- 2种刷新方式
- 选择maven模块目录–>右键选择Maven–>点击Reload Project
- 点击IDEA边框maven–>点击刷新按钮
web.xml
- 修改文件内容后需重新生成web.xml使之生效
- 存在原来web.xml时,需要删除原web.xml
- 选择maven项目,点击Project Structure—>Facts—>点击+号,修改WEB路径—>Apply即可。
- 参考文档:https://blog.csdn.net/weixin_30872337/article/details/101370947
其他
- dubbo项目代码
项目地址:https://github.com/zyanwei2011/Java-Demo/tree/master/dubbo-demo,说明见github项目Readme.md
- 参考文档
https://blog.csdn.net/lovequanquqn/article/details/81627807