gpt4 book ai didi

java - Spring Boot Maven 提供的作用域包含在 WAR 中,但不包含在 IDE 运行时中

转载 作者:搜寻专家 更新时间:2023-11-01 03:34:38 24 4
gpt4 key购买 nike

我整个周末都在试图弄清楚为什么一个简单的 Spring Boot 项目可以在命令行下工作,但不能通过我的 IntelliJ 15.0.2 IDE 并最终将其缩小到以下内容:

  1. 我正在使用嵌入式 Tomcat
  2. 默认的依赖如下:

    <dependencies>
    ...
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
    </dependency>
    <dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
    <scope>provided</scope>
    </dependency>
    </dependencies>
    1. Maven provided scope dependencies are included in the packaged JAR/WAR
    2. IntelliJ 从运行时类路径中排除 provided 作用域。

因此命令行构建的 WAR 文件包含为嵌入式 Tomcat 提供的作用域 JAR,但通过 IntelliJ IDEA 运行的实例不包含。

有没有人遇到过这个?

解决它的最佳方法是什么?

我可以将 scope 更改为 compile,但这感觉像是一个 hack。这是唯一的解决方法吗?

最佳答案

我遇到了同样的问题。我通过注释范围修复了这个问题。

<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<!--<scope>provided</scope>-->
</dependency>

关于java - Spring Boot Maven 提供的作用域包含在 WAR 中,但不包含在 IDE 运行时中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34726321/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com