zoukankan      html  css  js  c++  java
  • 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>

     

    作者: i孤独行者
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    Atitit 图像处理类库 halcon11  安装与环境搭建attilax总结
    Atitit  undac网络设备管理法案 (路由器 交换机等)    法案编号USRr101510
    Atitit 图像处理 halcon类库的使用  范例边缘检测 attilax总结
    Atitit Seed-Filling种子填充算法attilax总结
    Atitti 图像处理 特征提取的科技树 attilax总结
    Atitit 软件体系的进化,是否需要一个处理中心
    Atitit 项目的主体设计与结构文档 v5
    Atitti 过程导向 vs 结果导向 attilax的策略
    Atitti 过程导向 vs 结果导向 attlax的策
    Atitit 版本管理----分支管理
  • 原文地址:https://www.cnblogs.com/dc-earl/p/7965468.html
Copyright © 2011-2022 走看看