Mavenmaven

Maven 依赖中 scope 详解

2018-02-01  本文已影响558人  当当一丢丢
前言
scope 分类
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <!--此处test,表明 junit jar包只能出现在 test 环境下的classpath,
            即 只能在标记为 “TestSources Root的 文件夹下”被调用, 而在“标记为Sources Root 的文件夹下”找不到其中的类-->
            <scope>test</scope> 
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.25</version>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.7.25</version>
            <!--此处test 是关键,表明底层日志实现框架-也即该依赖在test 代码编译、运行时才起作用-->
            <scope>test</scope> 
        </dependency>

    </dependencies>

测试代码

Sources Root 目录下

public class LogDemo {
    Logger logger = LoggerFactory.getLogger(LogDemoTest.class);
    public static void main(String[] args) {
        Logger logger = LoggerFactory.getLogger(LogDemo.class);
        //不能找到底层日志使系统,因为 该依赖 为 test 范围
        logger.info("log");
    }
}

输出:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

TestSources Root 目录下

public class LogDemoTest {
    Logger logger = LoggerFactory.getLogger(LogDemoTest.class);
    @Test
    public void test() {
        //能找到底层日志实现系统
        logger.info("junit test"); 
    }
}

输出:
[main] INFO log.learn.LogDemoTest - junit test
scope 的传递依赖
上一篇下一篇

猜你喜欢

热点阅读