东北一位不知名的非本科生成功地让四方登陆阿里巴巴。 在这里分享自己整理的面经,欢迎大家阅读。
Maven是目前最受欢迎的管理工具,一个也没有。 也是面试中最多同学最容易被忽视的知识。 从BAT到创业公司,大多数企业都将Maven作为核心管理工具。 因此,只要从事互联网行业,Maven就必须做到。
恰个饭—— 《阿里巴巴 Java 开发手册》 ,业界普遍遵循的开发规范
本博客内容持续维护,如有改进之处,还望各位大佬指出,感激不尽!
文章目录Maven教程第1章Maven概述1.1 Maven概述1.2 Maven的作用1.3 Maven的用法1.4 Maven的核心概念1.5Maven环境1.6 Maven的编译过程第2章Maven的核心概念2.1 Maven工程约定的目录结构xml文件2.3.3仓库2.4 Maven生命周期2.5 Maven通用命令2.6插件2.7坐标(gav ) 2.8依赖(dependency )第3章Maven在IDEA中的应用3.1 maven1. maven在IDEA中的应用配置3.1.2创建Maven Java项目3.3创建maven web项目第4章依赖关系管理4.1依赖关系范围第5章maven通用设置5.1 Maven属性设置5.2全局变量5.3资源插件指定单词学习
Maven教程第1章Maven概述1.1 Maven概述
Apache开发的管理工具
3358 www.Sina.com/: http://maven.Apache.org /
官网:Maven项目对象模型(POM )是一个软件项目管理工具,用于管理项目的生成、报告和文档。
概念:希望开发人员能在最短的时间内了解开发的完整状态。
目标(简化构建过程、统一体系、提供高质量项目信息、提供开发最佳做法指南、实现透明新功能迁移、简化构建过程。
1.2 Maven角色特点:管理Jar及其下载、版本
1、管理依赖:完成项目代码的编译、测试、打包和部署
1.3 Maven用法http://www.Sina.com/:使用maven中的各种命令完成代码的编译、测试和打包
33558 www.Sina.com/:一般在idea上使用maven,简单、快速,无需关卡命令
1.4 Maven的核心概念2、构建项目: pom.xml称为项目对象模型,使用项目作为模型。 它就像一个控制层,完成编译、测试、打包、安装、部署等。
1、独立使用Maven:有指定的目录和文件位置
2、结合开发工具使用:表示资源的唯一字符串
1. POM:可用于管理项目的Jar文件
2. 约定的目录结构:资源的存储位置
3. 坐标:maven工具框架项目流程
33558 www.Sina.com/:用于运行maven构建的工具是插件
4. 依赖管理
5. 仓库管理(了解)
1.5使用安装Maven环境的Maven首先很难,使用Maven命令很难。 idea直接使用maven而不是命令。
Maven的安装和配置
http://www.Sina.com/: http://maven.Apache.org /
6. 生命周期(了解)
曾经的cookie :可执行文件主要是mvn.cmdconf: maven的自身配置文件,主要在setting.xml 7. 插件和目标(了解):系统的环境变量中指定M2_HOME名称
将M2_HOME添加到path,并在所有路径之前添加%M2_HOME%以前的cookie
安装成功标志打开cmd,输入mvn -v命令,如果运行成功,说明maven安装成功。
1.6 Maven的编译过程8. 继承
输入cmd进入命令行,进入要输入的Maven文件,输入mvn compile,然后编译所有j
ava文件为什么要下载? 因为Maven工具执行需要很多插件
下载了什么东西? 插件:完成某些功能
下载的东西放哪了? 默认仓库:C:UsersAdministrator.m2repository
执行mvn compile后,会在项目的根目录下生成target目录(结果目录),maven编译的java程序,最后的class文件都放在target目录中
也就是说,编译项目时,明明某个文件存在,可运行时系统却报错为不存在,原因就可能是该文件在项目中存在,但是在target文件夹中不存在。
修改仓库地址:在setting.xml中修改
第二章 Maven的核心概念 2.1 Maven工程约定的目录结构任何项目其实都有约定,约定就是一个规则。
main:主程序的Java代码和配置文件
Java:程序包和包中的Java文件
resources: Java程序中要使用的配置文件
pom.xml: Maven的核心文件
2.2 pom.xml文件pom.xml,叫做项目对象模型。控制全局。把一个项目当做一个模型使用,类似于控制层,完成编译、测试、打包、安装、部署等等。
2.3 仓库存放物品:存放Jar、Maven的插件等等
仓库分类
本地仓库,可以在maven安装目录/conf/settings.xml中指定中央仓库:最权威的,所有的资源都放在这里中央仓库的镜像:分担压力的私服:公司局域网内部使用的,就是公司自己开发的 2.4 Maven的生命周期概念:项目的构建过程:清理、编译、测试、报告、打包、安装、部署
2.5 Maven的常用命令概述:Maven通过命令完成
mvn clean:清理
mvn compile:编译src/main/java目录中的程序,把Java编程成class文件,并放到target/classes目录中
mvn test-compile:编译src/main/test目录下的Java程序,拷贝到target/test-class目录中
mvn test:进行单元测试,使用Junit测试src/main/java目录下的程序是否符合要求
mvn package:打包。把程序中src/main/test下面的Java编译后的class和resources中的配置文件放入到一个压缩包中。
mvn install:把jar、war安装到本机仓库中
2.6 插件概念:Maven提供的功能,用来执行清理、编译、测试、报告、打包的程序
2.7 坐标(gav)由三个向量组成,唯一定位一个Maven项目,三者同时定义路径,groupId和version决定Jar包名称
groupId:组织名,通常是一个公司或组织名称倒序+项目名
artifactId:模块名:通常是工程名
version:版本号
2.8 依赖(dependency)依赖的作用:用依赖把jar导入到项目中
第三章 Maven在IDEA中的应用 3.1 在idea中设置maven 1. maven简介idea中内置maven,但一般不用,因为用内置修改maven的设置不方便
因此使用自己安装的maven,需要覆盖默认配置,也就是指定maven的安装位置等信息
其中:Setting选项是用来设置本项目的Maven的
Other Setting是设置以后建立的项目的Maven的
目录如下:
进入Setting项,可以看到有三个项目管理工具
其中,框选的两个项目工具最常用,Gradle是最新开发的项目管理工具,功能更强但应用较少。
打开Maven,框选的三个分别是Maven工具的存放路径、配置文件的存放路径、本地仓库(target文件)的存放路径
2. maven-Runner选项的配置1. 变得更快
接下来进入Runner选项,配置vm项,可以让maven创建的更快
原本的maven默认下载一个模板文件,有7M,下载很慢,为了不让他下载,就需要在vmOption中进行配置,禁用相关的下载。
2. 自动刷新功能
若想让Maven自动刷新,即一旦更新pom.xm文件,Maven项目就自动刷新,只需勾选红框内的选项即可
3. 对新创建的项目的Maven配置操作与对本项目进行Maven配置一致
3.2 Maven创建Java项目需要选择的Maven模板:
使用普通Java项目模板创建即可
3.3 Maven创建Web项目需要选择的Maven模板:
依赖范围的名称和说明见下表:
一般来说,只有单元测试的依赖范围是test
下面,给出了test的依赖示例
第五章 Maven常用设置 5.1 Maven的属性设置<properties>设置maven的常用属性
5.2 全局变量全局变量的定义格式:${变量名}
对于:自定义全局变量,一般用来自定义版本号。做法是:先使用全局变量定义,再使用${变量名}
5.3 指定资源插件一般来说,如果不指定任何资源插件,src/main/java和 src/test/java两个目录中的所有*.java文件会被编译,并将结果分别存放到target/classes和targe/test-classes目录中
但是这两个目录中的其他文件都会被忽略掉,因此,如果我们需要使用其他文件,在运行时就会报错。 解决办法是指定资源插件,将以下内容放到<buid>标签中,将其他文件也进行编译
<build> <!--把src/main/java目录中的.xml文件包含到输出结果中,输出到classes目录中--> <resources> <resource> <directory>src/main/java</directory> <!--所在的目录--> <includes> <!--包括目录下的.properties.xml文件都会扫描到--> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <!--表示不用过滤器,因为.property已经起到过滤的作用了--> <filtering>false</filtering> </resource> </resources></build> 单词学习Execution:执行
Deployment:部署
archetype:模板、原型
喜欢就点个赞吧!