Maven配置xml文件详解

 

 <!-- 模型版本 -->
 <modelVersion>4.0.0</modelVersion>
 <!-- 公司或组织着唯一标识,第一段是域(org、com 非盈利组织、商业组织),第二段是公司名称 -->
 <!-- 这个也是项目打成jar包,本地的存放路径 -->
 <groupId>com.lagou.edu</groupId>
 <!-- 项目的唯一ID,edu下可能有多个项目 -->
 <artifactId>lagou-edu-user</artifactId>
 <!-- 本项目所属的版本号 -->
 <version>0.0.1-SNAPSHOT</version>
 <!-- 打包的机制,如pom,jar, maven-plugin, ejb, war, ear, rar, par,默认为jar -->
 <packaging>jar</packaging>

 <!-- 本项目的依赖关系 -->
 <dependencies>
        <!-- 每个依赖都对应一个jar包 -->
        <dependency>
            <!-- groupId、artifactId、version统称为坐标 -->
            <groupId>com.supplychain</groupId>
            <artifactId>yhjp-supplyChain-common</artifactId>
            <version>0.0.1-SNAPSHOT</version>
             <!--scope包含如下的取值:compile(编译范围)、provided(已提供范围)、runtime(运行时范围)、test(测试范围)、system(系统范围) --> 
            <scope>test</scope>
            <!-- 设置指依赖是否可选,默认为false,即子项目默认都继承:为true,则子项目必需显示的引入,与dependencyManagement里定义的依赖类似  -->
            <optional>false</optional>  
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
        <dependency>
            <groupId>com.lagou.edu</groupId>
            <artifactId>lagou-edu-common</artifactId>
            <version>0.0.3-SNAPSHOT</version>
             <!-- 屏蔽依赖关系。 比如项目中使用的libA依赖某个库的1.0版,libB依赖某个库的2.0版,现在想统一使用2.0版,就应该屏蔽掉对1.0版的依赖 -->  
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
 </dependencies>

<scope>compile</scope>

  • compile: 默认值,表示为当前依赖参与项目的编译、测试和运行阶段,属于强依赖。打包之时,会打进Jar包。
  • test:该依赖仅仅参与测试相关的内容,包括测试用例的编译和执行。
  • runtime:依赖仅参与运行周期中的使用。一般这种类库都是接口与实现相分离的类库,比如JDBC类库,在编译之时仅依赖相关的接口,在具体的运行之时,才需要具体的mysql、oracle等等数据的驱动程序。此类的驱动都是为runtime的类库。
  • provided : 该依赖在打包过程中,不需要打进去,这个由运行的环境来提供,比如tomcat或者基础类库等等,事实上,该依赖可以参与编译、测试和运行等周期,与compile等同。区别在于打包阶段进行了exclude操作。

  • system : 使用上与provided相同,不同之处在于该依赖不从maven仓库中提取,而是从本地文件系统中提取,其会参照systemPath的属性进行提取依赖。

  • import : 这个是maven2.0.9版本后出的属性,import只能在dependencyManagement的中使用,能解决maven单继承问题,import依赖关系实际上并不参与限制依赖关系的传递性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值