【发布时间】:2021-08-25 09:15:24
【问题描述】:
我在我的项目中使用以下依赖项,但无法编译:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.1.0.RELEASE</version>
<scope>provided</scope>
</dependency>
我的项目是一个库,它将被另一个项目使用,它将提供 Spring Boot Web,因此我将其标记为已提供。
如果我更改范围以进行编译,它可以正常工作,但是我不想将此依赖项打包到我的 jar 中,因此我尝试使用提供的范围,但它不会让我编译。
我发现的另一种解决方法是使用 <optional>true</optional>,但在 Maven 的文档中,它被称为权宜之计。
请告知如何使用提供的范围进行编译。
【问题讨论】:
-
您能否更具体地说明“不起作用”的真正含义?
-
当然。当我使用提供的范围而不是默认(编译)范围时出现编译错误。
-
究竟是什么问题?请提供更多信息,否则没有人可以在这里提供帮助...
-
@khmarbaise,我能够解决这个问题。还有另一个依赖项导致与提供的范围发生冲突。在使用 dependency:tree 查看依赖项时,这一点变得清晰起来。谢谢。
标签: maven scope compilation dependencies