Maven面试题

Maven面试题

  1. Maven是什么

    Maven主要服务于基于java平台的项目构建,依赖管理和项目信息的管理

  2. Maven的主要功能

    • 依赖管理系统
    • 多模块构建
    • 一直到项目结构
    • 一直到构建模型和插件机制
  3. 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 :清除以前的包后重新打包,跳过测试类。
  4. Maven有哪些优点和缺点

    优点:

    • 简化了项目依赖管理

    • 易于管理

    • 便于与持续集成工具整合

    • 便于项目升级,无论是项目本身升级还是项目使用的依赖升级

    • 有助于多模块项目的开发,一个模块开发好后,发布到仓库,依赖该模块时可以直接从仓库更新,而不用自己去编译。

    • Maven 有很多插件,便于功能扩展,比如生产站点,自动发布版本等。
      缺点:

    • Maven 是一个庞大的构建系统,学习难度大。

    • Maven 采用约定优于配置的策略(convention over configuration),虽然上手容易,但是一旦出了问题,难于调试。

    • 当依赖很多时,m2eclipse 老是搞得 Eclipse 很卡

  5. Maven的声明周期

    • clean :声明周期 清理项目
    • Default:声明周期 构建项目
    • Site声明周期 建立和发布项目站点
  6. 什么是maven插件
    Maven 生命周期的每一个阶段的具体实现都是由 Maven 插件实现的。插件通常提供了一个目标的集合,并且可以使用下面的语法执行:mvn [plugin-name]:[goal-name]

    下面是一些常用插件的列表:

    • clean :构建之后清理目标文件。删除目标目录。

    • compiler :编译 Java 源文件。

    • surefile :运行 JUnit 单元测试。创建测试报告。

    • jar :从当前工程中构建 JAR 文件。

    • war :从当前工程中构建 WAR 文件。

    • javadoc :为工程生成 Javadoc 。

    • antrun :从构建过程的任意一个阶段中运行一个 ant 任务的集合。

  7. 什么是Maven仓库

    Maven的仓库有两大类

    本地仓库

    远程仓库

  8. Maven坐标

    一般maven使用[groupID,artifactId,version,packaging]来表示一个项目的某个版本,有时还会使用classifier来表示项目的附属构建,常见的附属构建有javadoc和sources包。

  9. 常见的Maven私服的仓库类型
    (宿主仓库)hosted repository, (代理仓库)proxy repository, (仓库组)group repository

  10. Maven项目标准目录结构核心代码部分:src/main/java

    配置文件部分:src/main/resources

    测试代码部分:src/test/java

    测试配置文件:src/test/resources

    页面资源(包含js,css,图片资源等):src/main/webapp

  11. 依赖 的解析机制

    • 解析发布版本:如果本地有,直接使用本地的,没有就向远程仓库请求。
    • 解析快照版本:合并本地和远程仓库的元数据文件-groupId/artifactId/version/maven-metadata.xml,这个文件存的版本都是带时间戳的,将最新的一个改名为不带时间戳的格式供本次编译使用。
    • 解析版本为LATEST,RELEASE,过于复杂,且解析的结果不稳定, 不推荐在项目中使用,感兴趣的同学自己去研究,简而言之就是合并groupId/artifactId/maven-metadata.xml找到对应的最新版本和包含快照的最新版本。
  12. 多模块如何聚合

    配置一个打包类型为pom的聚合模块,然后在该pom中使用元素声明要聚合的模块

  13. 构建的过程
    清理 编译 测试 报告 打包 部署

  14. Maven的安装

第一步: 安装jdk

第二部: 吧maven解压缩 解压目录最好不要有中文

第三步:配置环境变量MAVEN_HOME

第四步:配置环境变量PATH,将%MAVEN_HOME%bin加入Path中,在Windows中一定要注意要用分号;与其他值隔开。

第五步:验证是否安装成功,打开cmd窗口,输入mvn –v

  1. Maven的配置
    Maven有两个settings.xml配置文件,一个是全局配置文件,一个是用户配置文件。
发布了2 篇原创文章 · 获赞 0 · 访问量 94

猜你喜欢

转载自blog.csdn.net/weixin_45383456/article/details/104222892