maven依赖的作用域

Posted by hcy on July 31, 2020

maven依赖的作用域

maven下面五种作用域,除去system外,其他四种的作用在下面讲解。

​ 配置的方式

1
2
3
4
5
6
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.7</version>
            <scope>provided</scope>
        </dependency>

compile

​ 不填默认就是这个。

代码里可以使用,测试代码里也可以使用,会被打包到jar包里。

test

​ 只能使用在测试代码里,正式代码里用不了,不会被打包到jar里。

runtime

​ 不可以在代码里直接使用,但是会被打包到jar包里。

典型例子就是mysql jdbc驱动,我们不能直接在代码里new,而是使用的java提供的接口。接口通过反射获取驱动。

provided

​ 可以在代码里用,但不会被打包,因为他假设环境里存在能获取到。

典型例子就是servlet-api,开发时使用它,但不会被打包,因为运行它假设环境内一定存在。

system

配置依赖文件从本地磁盘获取。


转载请注明出处:https://www.huangchaoyu.com/2020/07/31/maven依赖的作用域/