重编maven-一

来源:互联网 发布:阿里巴巴软件使用 编辑:程序博客网 时间:2024/04/27 17:04

maven命令:

  • mvn compile:编译
  • mvn test:启动测试,执行test下测试用例
  • mvn clean:清空mvn仓库
  • mvn package:项目打包到mvn仓库
  • mvn install:项目打包到mvn仓库

Eclipse中配置maven:

  1. preferences—>maven—>installation—>引入自己maven安装路径
  2. preferences—>maven—>usersettings—>引入本地安装maven的setting配置文件

maven依赖特性:


   

<dependency></dependency>标签下有一个<scope></scope>标签, scope标签用于指定此依赖的作用范围,共有五个作用范围:compile、provided、runtime、system、test。

  1. test范围指的是测试范围有效,在编译和打包都不会使用这个依赖,并且不具备传递性。
  2. compile范围指的是编译范围有效,在编译和打包时都会将依赖存储进去,具有传递性,也是maven的默认作用范围。
  3. provided在编译和测试的过程有效,最后打包时不会加入。
  4. runtime在运行时依赖有效。

依赖的传递特性:

1.当属于间接依赖时,优先使用先声明依赖的版本。
如:A依赖—>log4j 1.0.0
       B依赖—>log4j 2.0.0
       C依赖—>A、B
那么C中log4j的版本取决于先依赖谁

2.当依赖级别不相同的时候,使用依赖层次最短的依赖。
如:A—>B—>C
       D—>C
       E—A、D
那么此时E中C的依赖版本取决于D中C的依赖版本,因为C在D中时一级依赖,而C在A中时二级依赖。


排除某个依赖:

<exclusion>
    <groupId></groupId>
    <artifactId></artifactId>
</exclusion>



maven聚合与继承:

聚合:

maven的聚合能够对多个模块进行统一管理,
如:
    <modules>
        <module>ng-redis</module>
        <module>ng-util</module>
        <module>ng-sms</module>
        <module>ng-msgpush</module>
        <module>ng-oss</module>
        <module>ng-mybatis</module>
    </modules>
这里的<modules></modules>标签就是将多个模块聚合到一个项目中。


继承:

maven的继承和Java的继承类似都是单继承。
首先在父项目pom中引入所需依赖进行统一版本管理,这里依赖时得使用<dependencyManagement></dependencyManagement>依赖管理标签,这样一来子pom能选择自己所需要的依赖,不会继承父pom所有依赖。
原创粉丝点击