maven optional provided

<optional>true</optional>

ccc依赖了bbb,bbb依赖了aaa,那么ccc可能用到aaa,也可能用不到aaa

bbb中引入的aaa需要加上<optional>true</optional>,如果ccc需要aaa的功能,需要ccc自己引入aaa

这就是可选依赖

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>${javax.servlet-api.version}</version>
    <scope>provided</scope>
</dependency>

scope=compile,表示编译、测试、运行都需要

scope=test,表示测试用例编译、执行需要,junit

scope=provided,表示编译、测试阶段需要这个包,运行时不需要,会由容器提供,如servlet-api

scope=runtime,表示运行时才需要,比如mysql、oracle等方言包

scope=system,表示该包需要从本地具体的路径提供,配合<systempath>使用,比如自己打的jar包

发布了233 篇原创文章 · 获赞 7 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/china_squirrel/article/details/105098531