转载

Maven

1)pre-clean 执行一些清理前需要完成的工作。 2)clean 清理上一次构建生成的文件。 3)post-clean 执行一些清理后需要完成的工作。

default生命周期

Maven核心功能之”构建“的所有需要执行的步骤

  1. process-resources 处理项目主资源文件。对src/main/resources目录的内容进行变量替换等工作后,复制到项目输出的主classpath目录中。

7) compile 编译项目的主源代码

  1. process-test-sources 处理项目测试资源文件

13)test-compile 编译项目的测试代码

  1. test 使用单元测试框架运行测试,测试代码不会被打包或部署

17)package 接受编译好的代码,打包成可发布的格式

  1. install 将包安装到Maven本地仓库,供本地其他Maven项目使用

23)deploy 将最终的包复制到远程仓库,供其他开发人员和Maven项目使用

site生命周期

建立和发布项目站点

命令

命令执行逻辑:首先会得到该阶段所属生命周期,从该生命周期中的第一个阶段开始按顺序执行,直至该阶段本身。不同声明周期的命令可同时执行。 比如:mvn clean package

依赖范围

Compile

默认范围

Provided

eg: jsp-api.jar servlet-api.jar(tomcat容器中有这两个jar包,如果打包了这两个到war包中,会和tomcat冲突。

Runtime

eg: JDBC驱动包

Test

eg: junit

Compile Provided Runtime Test
编译
测试
打包

依赖传递

引入一个Jar包可能会引入其他Jar,这就是依赖传递。 依赖传递或者导入版本不同的jar包时会出现“ 版本冲突 ”的问题,解决办法:

  • 父工程版本锁定

    版本锁定只是起到指定依赖版本的作用,并不会导入依赖.

<properties>
  <spring.version>4.2.4.RELEASE</spring.version>
</properties>
.........
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-bean</artifactId>
            <version>${spring.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>
复制代码
  • 依赖的优先原则(次要)

  • 排除依赖(不常见,百度即可)

    依赖范围对依赖传递造成的影响

Maven
原文  https://juejin.im/post/5d8d818b6fb9a04e1e7ba074
正文到此结束
Loading...