Maven面试题
-
Maven是什么
Maven主要服务于基于java平台的项目构建,依赖管理和项目信息的管理
-
Maven的主要功能
- 依赖管理系统
- 多模块构建
- 一直到项目结构
- 一直到构建模型和插件机制
-
Maven的常用命令
mvn archetype:create
:创建 Maven 项目。mvn compile
:编译源代码。mvn deploy
:发布项目。mvn test-compile
:编译测试源代码。mvn test
:运行应用程序中的单元测试。mvn site
:生成项目相关信息的网站。mvn clean
:清除项目目录中的生成结果。mvn package
:根据项目生成的 jar/war 等。mvn install
:在本地 Repository 中安装 jar 。mvn eclipse:eclipse
:生成 Eclipse 项目文件。mvn jetty:run
启动 Jetty 服务。mvn tomcat:run
:启动 Tomcat 服务。mvn clean package -Dmaven.test.skip=true
:清除以前的包后重新打包,跳过测试类。
-
Maven有哪些优点和缺点
优点:
-
简化了项目依赖管理
-
易于管理
-
便于与持续集成工具整合
-
便于项目升级,无论是项目本身升级还是项目使用的依赖升级
-
有助于多模块项目的开发,一个模块开发好后,发布到仓库,依赖该模块时可以直接从仓库更新,而不用自己去编译。
-
Maven 有很多插件,便于功能扩展,比如生产站点,自动发布版本等。
缺点: -
Maven 是一个庞大的构建系统,学习难度大。
-
Maven 采用约定优于配置的策略(convention over configuration),虽然上手容易,但是一旦出了问题,难于调试。
-
当依赖很多时,m2eclipse 老是搞得 Eclipse 很卡
-
-
Maven的声明周期
- clean :声明周期 清理项目
- Default:声明周期 构建项目
- Site声明周期 建立和发布项目站点
-
什么是maven插件
Maven 生命周期的每一个阶段的具体实现都是由 Maven 插件实现的。插件通常提供了一个目标的集合,并且可以使用下面的语法执行:mvn [plugin-name]:[goal-name]
下面是一些常用插件的列表:
-
clean :构建之后清理目标文件。删除目标目录。
-
compiler :编译 Java 源文件。
-
surefile :运行 JUnit 单元测试。创建测试报告。
-
jar :从当前工程中构建 JAR 文件。
-
war :从当前工程中构建 WAR 文件。
-
javadoc :为工程生成 Javadoc 。
-
antrun :从构建过程的任意一个阶段中运行一个 ant 任务的集合。
-
-
什么是Maven仓库
Maven的仓库有两大类
本地仓库
远程仓库
-
Maven坐标
一般maven使用[groupID,artifactId,version,packaging]来表示一个项目的某个版本,有时还会使用classifier来表示项目的附属构建,常见的附属构建有javadoc和sources包。
-
常见的Maven私服的仓库类型
(宿主仓库)hosted repository, (代理仓库)proxy repository, (仓库组)group repository -
Maven项目标准目录结构核心代码部分:
src/main/java
配置文件部分:
src/main/resources
测试代码部分:
src/test/java
测试配置文件:
src/test/resources
页面资源(包含js,css,图片资源等):
src/main/webapp
-
依赖 的解析机制
- 解析发布版本:如果本地有,直接使用本地的,没有就向远程仓库请求。
- 解析快照版本:合并本地和远程仓库的元数据文件-groupId/artifactId/version/maven-metadata.xml,这个文件存的版本都是带时间戳的,将最新的一个改名为不带时间戳的格式供本次编译使用。
- 解析版本为LATEST,RELEASE,过于复杂,且解析的结果不稳定, 不推荐在项目中使用,感兴趣的同学自己去研究,简而言之就是合并groupId/artifactId/maven-metadata.xml找到对应的最新版本和包含快照的最新版本。
-
多模块如何聚合
配置一个打包类型为pom的聚合模块,然后在该pom中使用元素声明要聚合的模块
-
构建的过程
清理 编译 测试 报告 打包 部署 -
Maven的安装
第一步: 安装jdk
第二部: 吧maven解压缩 解压目录最好不要有中文
第三步:配置环境变量MAVEN_HOME
第四步:配置环境变量PATH,将%MAVEN_HOME%bin加入Path中,在Windows中一定要注意要用分号;与其他值隔开。
第五步:验证是否安装成功,打开cmd窗口,输入mvn –v
- Maven的配置
Maven有两个settings.xml配置文件,一个是全局配置文件,一个是用户配置文件。