我想看使用教程

我想看使用教程,第1张

exescope使用教程(exescope使用教程分享)

依赖是maven提供的主要功能之一。无论我们需要什么依赖项,我们只需要将它们添加到POM.xml中。由于maven,所有必需的类和资源都会自动添加到项目的类路径中。

一、dependency依赖

在POM 4中,< dependency >这

*默认值compile适用于所有阶段,并将随项目一起发布。

*假设,类似于编译,预计JDK、容器或消费者将提供此依赖关系。比如servlet.jar

* runtime,只在运行时使用,如JDBC驱动,适用于运行和测试阶段。

* test,仅在测试期间使用,用于编译和运行测试代码。不会随项目一起发布。

* system,与provided类似,需要显式提供一个包含依赖项的jar,Maven不会在存储库中查找。

请看下面的例子:

lt依赖性 gt

ltgroupId gtorg . spring framework . boot lt;/groupId gt;

ltartifactId gtd簧-启动-启动-Tomcat lt;/artifact id gt;

lt范围 gt提供 lt/scope gt;

lt/dependency gt;

二、scope参数取值项

作用域的值有以下几种可能,将在不同的情况下进行解释。

(1)编译

缺省值是compile,没有配置任何东西,这意味着编译。编译意味着依赖项目需要参与当前项目的编译。当然后续的测试和运行周期也有涉及,这是一种很强的依赖性。包装的时候,一般都需要包含。的默认作用域将在部署时打包在lib目录中,项目在编译、测试和运行阶段都需要它。

(2)测试

范围测试是指依赖项目只参与测试相关的工作,不会在编译运行环境中使用,更不用说打包了。

(3)运行时间

它只适用于运行环境,不会用于编译和测试环境。

(4)提供

在一个适合编译测试的环境下,很接近编译,但是provided只需要在编译测试阶段,同样provided也不会打包在lib目录下。

(5)系统

参与方面,也和提供的一样,但是依赖项不会从maven仓库抓取,而是从本地文件系统抓取,必须和systemPath属性配合使用。

三、scope的依赖传递

a- gt;b- gt;丙.当前项目是A,A依赖于B,B依赖于C,知道了B在项目A中的作用域,怎么知道C在项目A中的作用域呢?答案是:

测试或提供C时,直接丢弃C,A不依赖C;

否则,A依赖于C,C的作用域继承B的作用域。

为什么需要区分这些范围?

它可以用来限制依赖的范围。不同的jar包可以在不同的环境中打包。比如junit测试类的jar包,可以设置成不编译不运行就测试。

四、lt;optionalgt;truelt;/optionalgt;属性

还有最后一个

lt依赖性 gt

ltgroupId gtorg . spring framework . boot lt;/groupId gt;

ltartifactId gtspring-boot-devtools/artifact id gt;

lt可选 gttrue lt/可选 gt

lt/dependency gt;

在添加依赖项时,我们可以使用可选的熟悉度或将范围设置为“提供”。在这两种情况下,依赖项都会在声明它们的模块的类路径中,但是使用将它们定义为依赖项的模块不会在其他项目中传递它们,也就是不会形成依赖项传递。

例如,在上面的例子中,您可以在SpringBoot官网文件中获得< optional gttrue lt/可选 gt如果其他项目依赖于此项目,则不会被转移,只能被此项目使用。

郑重声明:本文版权归原作者所有。转载文章只是为了传播更多的信息。如作者信息标注有误,请第一时间联系我们修改或删除。谢谢你。

转载:感谢您对网站平台的认可,以及对我们原创作品和文章的青睐。非常欢迎大家分享到个人站长或朋友圈,但转载时请注明文章来源“蝶芒网”。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/4696568.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-07
下一篇 2022-11-07

发表评论

登录后才能评论

评论列表(0条)

保存