maven学习整理-进阶知识

在maven的阶知识主要学习的是maven在eclipse中的使用、依赖相关的问题、继承(父子工程)、统一版本管理、聚合等相关知识

1.maven在eclipse中的使用

    由上篇基础知识学习到怎样下载安装maven,先在我们将下载好的配置到ecllipse中

    选择Window->Preferences->Maven->Installations->add->①在本地工作空间的选择Workspace,其余选择External②选择解压maven的目录③可以给配置进来maven任意起名字④点击Finish完成配置

 

 

配置本地设置

这样完成在eclipse配置自己解压的maven

2.maven的依赖

 2.1依赖的范围

     依赖的范围可分为三种分别是test、provided、compile(默认值)

compile:
    对主程序是否有效:Y
    对测试程序是否有效:Y
    是否参与打包:Y

test:
    对主程序是否有效:N
    对测试程序是否有效:Y
    是否参与打包:N
    egg:junit.jar
provided:
     为web工程添加的
     对主程序是否有效:Y
     对测试程序是否有效:Y
    是否参与打包:N ---不参与部署
    egg:service-api.jar
    开发有 部署运行不用

2.2 依赖的传递性

    依赖的传递性----dependency hierarchy依赖的传递性 首层是直接依赖,其余的是传递依赖 

        可以传递的依赖不必在每个工程重复声明,只在最下面的工程依赖一次就行--------其余工程均可使用

         非compile范围的依赖不能传递,test和provided只在本工程有效

2.3依赖排除

     排除只在本工程有效,在下面工程排除依赖,上面使用的工程的依赖也会排除
    <exclusions>
        <exclusion>
            指定groupId和artifactid
        </exclusion>
    </exclusions>

2.4依赖的原则

    依赖原则:解决模块工程之间的jar包冲突问题
      就近原则,如果有两个类型相同jar包,maven会自动选择最近的
      类型相同,路径相同 在dependency声明顺序,maven会选择最后声明的那个版本

2.5依赖管理

<!-- 配置依赖的管理 -->
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        <version>4.9</version>
         <scope>test</scope>
        </dependency>
    </dependencies>
</dependencyManagement>       

 

3.统一版本管理

     在properties中使用自定义的版本号、定义字符集,在dependency时自动替换

<properties>
    <spring.version>4.1.1.RELEASE</spring.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>${spring.version}</version>
    <scope>compile</scope>
</dependency>

4.父子工程

  新建父工程,选择Packaging时选择pom即可

    新建子工程,和其他工程新建一致,只需要添加引用即可

<!-- 子工程中声明父工程 -->
<parent>
    <groupId>com.test.maven</groupId>
    <artifactId>Parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <!-- 以当前文件为基准的父工程pom.xml文件的相对路径 -->
    <relativePath>../Parent/pom.xml</relativePath>
</parent>

父子工程注意事项

    父工程---将test范围的工程抽取到父工程里
        1.父工程的打包方式是pom
        2.在子工程声明对父工程的引用 用parent标签和dependences同级
            relativepath以子工程的pom.xml路径为基准的父工程pom.xml的路径

        3.子工程与父工程坐标重复删除
        4.在父工程统一版本依赖
             在父工程配统一依赖的管理dependencyManager --dependences -dependency
       5.子工程版本依赖删除

       配置继承后,执行安装时要先安装父工程

5.聚合

  聚合一键安装各个模块工程
    配置聚合----指定各个子工程的相对路径
<models>
<model></model>
</models>

<!-- 配置聚合 -->
<modules>
    <!-- 指定各个子工程的相对路径 -->
    <module>../maven1</module>
    <module>../maven2</module>
</modules>

使用方式,在聚合工程上右键 install即可
子模块顺序可以乱序,maven自动排序

6.设置jdk

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <configuration>
     <source>1.7</source>
     <target>1.7</target>
    </configuration>
</plugin>

 

 

 

posted @ 2017-12-03 10:12  i孤独行者  阅读(491)  评论(0编辑  收藏  举报