文章目录
1、什么是Maven
- 一款 Java平台的项目构建和依赖管理 的 自动化工具
- 主要功能:添加第三方jar包、解决jar包间依赖和冲突、把工程拆成多个模块、项目分布式部署
- 包查询地址:https://mvnrepository.com/
2、安装 和 配置
2.1、安装
0️⃣ IntelliJ IDEA已附带Maven,我们也可以另外装
1️⃣ 去官网(http://maven.apache.org/)下载压缩包,解压并改名到D:\coding\maven
2️⃣ 控制面板\系统和安全\系统 -> 高级系统设置 -> 环境变量:M2_HOME和%M2_HOME%\bin
3️⃣ 配好后mvn -version命令可查看版本
2.2、配置 本地仓库存放路径 和 阿里云镜像
4️⃣ 去到%M2_HOME%\conf,编辑settings.xml
<!-- 本地仓库存放路径 -->
<localRepository>D:\mavenRepository</localRepository>
<!-- 配置阿里云镜像下载更快 -->
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
2.3、替换 IDEA 中的 Maven
5️⃣ 去到IntelliJ IDEA的Setting,替换本项目的Maven

6️⃣ 修改New Projects Settings使得以后每次新建项目都用外面的Maven

3、创建Maven工程


3.1、约定的目录结构
思想:约定 > 配置 > 编码
3.2、POM
- 全称:Project Object Model
- 译名:项目对象模型
3.3、坐标
- groupId:公司或组织的域名倒序+当前项目名称
- artifactId:当前项目的模块名称
- version:当前模块的版本
留意
pom.xml
3.4、常用依赖
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.12</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.12</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-mllib_2.12</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming_2.12</artifactId>
<version>3.0.1</version>
</dependency>

3.5、依赖范围(scope)和传递
<dependency>
<!-- 坐标 -->
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.0</version>
<!-- 依赖的范围,不写的话默认compile -->
<scope>test</scope>
</dependency>
- 介绍3个常用的
test:main目录下的Java代码不能访问这个范围的依赖,test目录下的Java代码可以访问这个范围的依赖,依赖不可传递
compile:main和test目录下的Java代码可以访问这个范围的依赖,依赖可传递
provided:在开发过程中(例如执行IDEA时)生效,部署到服务器时不生效
| scope | main目录(空间) | test目录(空间) | 开发过程(时间) | 部署到服务器(时间) | 依赖传递 | 备注 |
|---|---|---|---|---|---|---|
| compile | 有效 | 有效 | 有效 | 有效 | 可传递 | 默认的 |
| test | ❌ | 有效 | 有效 | ❌ | 不传递 | 例如junit |
| provided | 有效 | 有效 | 有效 | ❌ | 不传递 | 服务器上有,你就别带了,带了可能会冲突 |
3.6、依赖的冲突
路径最短者优先
3.7、依赖的排除
<dependency>
<groupId>XXX</groupId>
<artifactId>XXX</artifactId>
<version>1.0</version>
<!-- 依赖排除 -->
<exclusions>
<exclusion>
<groupId>YYY</groupId>
<artifactId>YYY</artifactId>
</exclusion>
</exclusions>
</dependency>
3.8、生命周期 和 插件
| 序号 | 生命周期 | 译名 | 说明 |
|---|---|---|---|
| 1 | clean | 清理 | 删除以前的编译结果,为重新编译做好准备 |
| 2 | compile | 编译 | 将Java源程序编译为字节码文件 |
| 3 | test | 测试 | 针对项目中的关键点进行测试,确保项目在迭代开发过程中关键点的正确性 |
| 4 | 报告 | 在每一次测试后以标准的格式记录和展示测试结果 | |
| 5 | package | 打包 | 将一个包含诸多文件的工程封装为一个压缩文件用于安装或部署 (Java工程对应jar包,Web工程对应war包) |
| 6 | install | 安装 | 在Maven环境下特指将打包的结果——jar包或war包安装到本地仓库中 |
| 7 | deploy | 部署 | 将打包的结果部署到远程仓库或将war包部署到服务器上运行 |

- Maven的核心仅仅定义了抽象的生命周期,具体的任务都是交由插件完成的。
- 每个插件都能实现多个功能,每个功能就是一个插件目标。
- Maven的生命周期与插件目标相互绑定,以完成某个具体的构建任务。
例如:compile就是插件maven-compiler-plugin(见上图)的一个功能;pre-clean是插件maven-clean-plugin的一个目标。
4、创建Maven模块
-
创建空的工程


-
在空的工程下创建模块(可以多个模块)




补充
域名
- Domain Name
- 又称网域
- 是由 一串用点分隔的名字组成 的 Internet上 某一台计算机或计算机组的名称
- 用于在数据传输时对计算机的定位标识
| 常见域名后缀 | 全称 | 说明 |
|---|---|---|
| org | organizations | 组织 |
| com | commercial | 商业的 |
| edu | education | 教育 |
| cn | China | 中国 |
| gov | government | 政府 |
示例
单词
| en | 🔉 | cn |
|---|---|---|
| integrate | ˈɪntɪɡreɪt | vt. 使…成整体;n. 一体化; vi. 求积分;adj. 整合的 |
| develop | dɪˈveləp | vt. 开发 |
| environ | ɪn’vaɪrən | v. 环绕;包围 |
| environment | ɪnˈvaɪrənmənt | 环境 |
| IDE | integrated development environment | 集成开发环境 |
| SDK | Software Development Kit | 软件开发工具包 |
| markdown | ˈmɑːrkdaʊn | n. 标低价 |
| mark down | 记下;减价 | |
| notepad | ˈnoʊtpæd | 记事本 |
| navigate | ˈnævɪɡeɪt | v 导航 |
| appearance | əˈpɪrəns | 外观 |
| scope | skoʊp | n. 范围;视野;眼界;vt. 审视 |
| notify | ˈnoʊtɪfaɪ | vt. 通告 |
| plugin | ˈplʌɡɪn | 插件 |
| key map | [计]键映射表;[计]键映射 | |
| toolbar | ˈtuːlbɑːr | 工具栏 |
| framework | ˈfreɪmwɜːrk | 框架 |
| scratch | skrætʃ | n. 擦伤;抓痕;adj. 打草稿用的;凑合的;v 抓 |
| console | kənˈsoʊl | n. [计] 控制台;vt. 安慰 |
| refactor | ri’fæktə | n. 重构;vt. 重构 |
| factor | ˈfæktər | n. 因素 |
| relative | ˈrelətɪv | adj. 相对的 |
| reference | ˈrefrəns | n. 参考;v 引用 |
| bundle | ˈbʌndl | n. 束;捆;vt. 捆 |
| debug | ˌdiːˈbʌɡ | vt. 调试 |
| deploy | dɪˈplɔɪ | vn 部署 |
| general | ˈdʒenrəl | adj. 一般的;n. 一般;将军 |
| external | ɪkˈstɜːrnl | adj. 外部的;n. 外部;外观 |
| icon | ˈaɪkɑːn | 图标;偶像;肖像 |
| prefix | ˈpriːfɪks | n. 前缀 |
| suffix | ˈsʌfɪks | n. 后缀 |
| scheme | skiːm | n. 计划;vt. 策划;vi. 拟订计划 |
| property | ˈprɒpəti | n. 性质;财产;所有权 |
| artifact | ˈɑːrtɪfækt | 手工艺品 |
| snapshot | ˈsnæpʃɒt | n. 快照;速射;v 拍快照; |
| module | ˈmɒdjuːl | n. [计] 模块;组件;模数 |
| previous | ˈpriːviəs | 以前的;早先的 |
| coordinate | koʊˈɔːrdɪneɪt | v. 调节;(衣服、家具等)搭配;与…形成共价键 adj. 并列的;坐标的;n. 坐标 |
| lifecycle | ˈlaɪfˌsaɪkl | 生命周期 |
| intelligent | ɪnˈtelɪdʒənt | 智能的 |
| verify | ˈverɪfaɪ | vt. 核实 |
| validate | ˈvælɪdeɪt | vt. 证实;确认;使生效 |




422



被折叠的 条评论
为什么被折叠?



