Maven 1

作者: 流光已至 | 来源:发表于2019-05-06 09:31 被阅读0次
    1 什么是Maven

    Maven是java平台下的一款项目构建和依赖管理的自动化管理工具。

    项目构建:将我们的源代码、配置文件变成可执行的war包或者jar包。

    依赖管理:项目需要正常运行,必须依赖一些第三方的jar包,对于这些第三方的jar包的管理,可以认为就是依赖的管理。

    2 Maven的优点

    1 简化了项目依赖管理。
    2 便于项目升级。 无论是项目本身的升级还是项目使用到的依赖升级
    3 有助于多模块项目的开发。一个模块开发好后,发布到仓库,依赖该模块时直接从仓库更新,而不用自己去编译。
    4 maven有很多插件,便于功能扩展。 如生产站点,自动发布版本等

    3 Maven仓库snapshot快照版本与release正式版本的区别

    1 Snapshot版本代表不稳定、尚处于开发中的版本,
    在不更改版本号的情况下,直接编译打包时,maven会自动从镜像服务器上下载最新的快照版本
    2 Release版本则代表稳定的版本,编译打包时如果本地
    已经存在该版本的模块则不会主动去镜像服务器上下载。
    选择: 在协同开发期间,活跃模块的版本号使用SNAPSHOT
    而在生产环境中依赖RELEASE版本模块

    4 Maven坐标

    一般maven用groupId , artifactId, version , pakaging 来表示项目的某个版本。

    5 Maven常见的依赖范围有哪些?

    1 compile:编译依赖,默认的依赖方式,在编译(编译项目和编译测试用例),运行测试用例,运行(项目实际运行)三个阶段都有效,典型地有spring-core等jar。
    2 test:测试依赖,只在编译测试用例和运行测试用例有效,典型地有JUnit。
    3 provided:对于编译和测试有效,不会打包进发布包中,典型的例子为servlet-api,一般的web工程运行时都使用容器的servlet-api。
    4 runtime:只在运行测试用例和实际运行时有效,典型地是jdbc驱动jar包。

    6 Maven的生命周期

    maven有三套生命周期,分别为:

    1、clean 周期:主要用于清理上一次构建产生的文件,可以理解为删除target目录

    2、默认周期,
    主要阶段包含:
    1 process-resources 默认处理src/test/resources/下的文件,将其输出到测试的classpath目录中,
    2 compile 编译src/main/java下的java文件,产生对应的class,
    3 process-test-resources 默认处理src/test/resources/下的文件,将其输出到测试的classpath目录中,
    4 test-compile 编译src/test/java下的java文件,产生对应的class,
    5 test 运行测试用例,
    6 package 打包构件,即生成对应的jar, war等,
    7 install将构件部署到本地仓库,
    8 deploy 部署构件到远程仓库

    3、site周期
    主要阶段包含
    site 产生项目的站点文档
    site-deploy 将项目的站点文档部署到服务器

    7 我们经常使用“Mvn Clean Package”命令进行项目打包,请问该命令执行了哪些动作来完成该任务?

    见上面过程。

    8 依赖的解析机制,插件的解析机制

    解析机制

    9 多模块如何聚合

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

    10 对于一个多模块项目,如果管理项目依赖的版本

    在父模块中配置dependencymanagement和pluginManagement,子模块中使用<parent>元素指定父模块。这样子模块在定义依赖时就可以只定义groupId和artifactId,自动使用父模块version,这样统一整个项目依赖的版本。

    11 一个项目的依赖来源于不同的组织,可能这些依赖还会依赖别的Jar包,如何保证这些传递依赖不会引起版本冲突。

    使用<dependency>的<exclusion>元素将会引起冲突的元素排除。

    12 常见的Maven私服的仓库类型。

    1 hosted repository(宿主仓库) , 2 proxy repository(代理) ,3 group (仓库组)

    13 如何查询一个插件有哪些目标(Goal)

    mvn help: describe -Dplugin=groupId:artifactId.

    14 常用Maven插件介绍

    常用Maven插件介绍

    1 tomcat-maven-plugin 插件使用
    2 maven-assembly-plugin :用途是制作项目分发包,
    3 maven-dependency-plugin :帮助分析项目依赖
    4 maven-enforcer-plugin : 创建一系列强制大家遵守的规则
    5 maven-release-plugin : 用途是帮助自动化项目版本发布,
    6 maven-help-plugin

    相关文章

      网友评论

          本文标题:Maven 1

          本文链接:https://www.haomeiwen.com/subject/ujckoqtx.html