zoukankan      html  css  js  c++  java
  • 依赖<dependency>的scope了解

    maven项目,添加依赖的时候,<dependency>内会有scope选项,默认是compile。

    网上也有不少介绍,有一个<import>没看明白,专门试了下,记录如下。

    新建项目testd为pom类型。再建子模块,但是不依赖testd这个项目(即父项目不指定),对应pom如下:

    <?xml version="1.0" encoding="UTF-8"?>
    
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
    
      <groupId>normal</groupId>
      <artifactId>testd</artifactId>
      <version>1.0-SNAPSHOT</version>
      <name>testd</name>
      <dependencyManagement>
        <dependencies>
          <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
          </dependency>
        </dependencies>
      </dependencyManagement>
    
    </project>
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <!--    <parent>-->
    <!--        <artifactId>testd</artifactId>-->
    <!--        <groupId>normal</groupId>-->
    <!--        <version>1.0-SNAPSHOT</version>-->
    <!--    </parent>-->
        <modelVersion>4.0.0</modelVersion>
    
        <artifactId>testson1</artifactId>
        <groupId>normal</groupId>
        <version>1.0-SNAPSHOT</version>
    
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>normal</groupId>
                    <artifactId>testd</artifactId>
                    <version>1.0-SNAPSHOT</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    
        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
            </dependency>
        </dependencies>
    </project>

    testson1里测试junit是否可以使用,比较简单,就是判断@Test是否可以导入,代码如下:

    public class SampleTest {
    
        @Test
        public void testDependency() {
        }
    }

    个人理解总结:使用<scope>import</scope>这个范围限制,可以在不继承父项目的情况下,使用指定项目的特定依赖(改部分依赖是pom项目里指定版本的,可以理解是特殊管理的jar类型)

  • 相关阅读:
    【打印】windows打印控件,Lodop.js介绍
    【MySQL】MySQL查询数据库各表的行数
    【MySQL】MySQL中查询出数据表中存在重复的值list
    【php】php5.0以上,instanceof 用法
    日期转换:Cannot format given Object as a Date (SimpleDateFormat的parse和format)
    Groovy 正则表达式 匹配点号
    什么是开发框架
    SoapUI 增大使用内存
    Groovy API link
    Groovy 跳出each循环
  • 原文地址:https://www.cnblogs.com/havenenjoy/p/12974612.html
Copyright © 2011-2022 走看看