1.exclusion可用于消除不需要同时下载的依赖jar,并解决jar包冲突
1这个标签的作用是排除关联依赖的引入。 maven的pom依赖之一是引入所有关联依赖。 2标签的作用是在关联依赖和引入的其他依赖可能发生冲突时,必须排除关联依赖,因此使用该标签。 图:
ependencygroupidorg.Apache.logging.log4j/groupidartifactidlog4j-core/artifactidversion2. 10.0/version exclusion artifactidgroupidorg.Apache.logging.log4j/groupid/exclusion/exclusions/dependency log4j-core本身是led 由于两个log4j-api的版本不同,使用exclusion标签排除log4j-core依赖的log4j-api,Maven不下载log4j-core依赖的log4j-api版本我们还确保了项目中只有一个log4j-api版本2 .作用域依赖范围控制着任何classpath中可用的1,5个属性值的语义compile。 默认值应用于所有阶段,并打包在项目中。 类似compile的provided希望JDK、容器或用户提供这种依赖关系。 runtime仅在运行时(如JDBC驱动程序)使用,适用于运行和测试阶段。 test仅在测试时使用,用于编译和执行测试代码。 不会与项目一起公开。 必须明确提供包含依赖关系的jar,如system和provided。 Maven不会在资料库里找那个。 例如:
ependencygroupidorg.spring framework.boot/groupidartifactidspring-boot-starter-Tomcat/artifactidscopeprovided/artid errorstartingapplicationcontext.todisplaytheauto-configurationreportre-runyourapplicationwith ' debug '
ependencygroupidorg.spring framework.boot/groupidartifactidspring-boot-starter-Tomcat/artifactidscopecompile/sttsting
ependencygroupidcom.* */groupidartifactid * */artifactidversion 1.0/versionscopesystem/scopetypejar/typeoptionaltrastem optionalsystempath $ { project.basedir }/src/main/web app/we B- INF/lib/*-1.0.jar/system