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类型)

  • 相关阅读:
    扩展当easyui datagrid无数据时,显示特定值。如:没有数据
    draggable datagrid columns
    easyui combobox 带 checkbox
    LightOJ1003---Drunk(拓扑排序判环)
    算法分析---回文数推断
    Android集成百度地图SDK
    BS一机双屏的解决方式
    myeclipse中更改web项目在tomcat中部署的路径
    Linux内核调试技术——jprobe使用与实现
    【Servlet】把文件写到Respond输出流里面供用户下载
  • 原文地址:https://www.cnblogs.com/havenenjoy/p/12974612.html
Copyright © 2011-2022 走看看