maven学习整理-进阶知识

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

1.maven在eclipse中的使用

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

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

maven学习整理-进阶知识_第1张图片

 

 maven学习整理-进阶知识_第2张图片

配置本地设置

maven学习整理-进阶知识_第3张图片

这样完成在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依赖排除

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

   

2.4依赖的原则

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

2.5依赖管理


<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>junitgroupId>
            <artifactId>junitartifactId>
        <version>4.9version>
         <scope>testscope>
        dependency>
    dependencies>
dependencyManagement>       

 

3.统一版本管理

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

<properties>
    <spring.version>4.1.1.RELEASEspring.version>
    <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
properties>
<dependency>
    <groupId>org.springframeworkgroupId>
    <artifactId>spring-coreartifactId>
    <version>${spring.version}version>
    <scope>compilescope>
dependency>

4.父子工程

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

maven学习整理-进阶知识_第4张图片

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


<parent>
    <groupId>com.test.mavengroupId>
    <artifactId>ParentartifactId>
    <version>0.0.1-SNAPSHOTversion>
    
    <relativePath>../Parent/pom.xmlrelativePath>
parent>

父子工程注意事项

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

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

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

5.聚合

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



<modules>
    
    <module>../maven1module>
    <module>../maven2module>
modules>

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

6.设置jdk

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

 

 

 

转载于:https://www.cnblogs.com/dc-earl/p/7965468.html

你可能感兴趣的:(java,开发工具)