美文网首页
Maven之scope的配置参数

Maven之scope的配置参数

作者: 莫笑_ | 来源:发表于2019-08-22 14:01 被阅读0次

    maven是一个Jar包的仓库,里面存放各种各样的Jar文件。

    在我们的项目中导入一个Jar文件:我们经常使用的Junit包如下所示:

        <dependency>

            <groupId>junit</groupId>

            <artifactId>junit</artifactId>

            <version>4.12</version>

            <scope>test</scope>

        </dependency>

    在这里主要说一下scope这个参数。这个scope表示这个Jar文件的有效范围。

    scope的值有以下几个:compile、test、provided、runtime、system。

    (1)compile:这个也是scope的默认值,表示这个Jar文件与程序一起进行编译。如果在我们的程序中使用了其他的Jar包,而没有把这个依赖的Jar文件一起进行编译,就会提示:找不到指定的类(Class)。即:将这个依赖的Jar文件放在ClassPath中,从而让我们的程序可以找到这个Jar文件,将我们的程序打成War文件时候,就会将compile的Jar文件也一起放进来

    (2)test:用于表示这个Jar文件只有在test阶段的时候使用,在我们进行·mvn package·的时候,并不会将这个依赖的Jar文件一起进行打包。只有在·mvn test·时候才使用的Jar文件,从而完成我们的测试用例。

    (3)provided:provided表示提供,由正式运行环境提供这个Jar文件,本程序不提供。当我们程序想使用某一个类的时候,如果不引入对应的Jar文件,就会提示找不到类,而我们又不想将这个Jar文件一起打包的时候,使用provided。provided这个Jar文件只是让我们的程序可以编译通过,由运行环境提供这个Jar文件。

    (4)runtime:在程序运行的时候使用这个Jar文件,而在我们的程序中没有使用Jar文件。例如:我们程序使用了一个第三方Jar文件(A.jar),而这个第三方Jar文件中使用了某一个Jar(B.jar),而B.jar的scope为provided,表示由正式运行程序提供,我们的程序虽然没有使用B.jar中的类,当时我们也必须将B.jar进行依赖,从而使A.jar可以找到B.Jar文件,这时候将B.jar设置为runtime,表示运行时候加入这个Jar文件。这个Jar文件会打包到我们的程序中。

    (5)system:与provided相同,只是从运行的系统找对应的Jar文件,必须与<systemPath>配合使用,指定Jar文件所在的位置。

    相关文章

      网友评论

          本文标题:Maven之scope的配置参数

          本文链接:https://www.haomeiwen.com/subject/wxdnsctx.html