当前位置: 首页 > 知识库问答 >
问题:

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

施宏大
2023-03-14

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

>

  • 我正在使用嵌入式Tomcat
  • 默认依赖关系如下:

    <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>
    

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

    以前有人遇到过这个吗?

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

    我可以将scope更改为compile,但这感觉像是黑客攻击。这是唯一的修复方法吗?

  • 共有1个答案

    夹谷宜民
    2023-03-14

    我也有同样的问题。我修正了我的评论范围。

    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <!--<scope>provided</scope>-->
    </dependency>
    
     类似资料:
    • 在war中,->不存在“”,但包含所有其他依赖项。

    • 我正在使用R rticles包中的Elsevier模板在Rstudio中生成pdf文档。对于这篇论文,我想包括一个.png图像。当我加载图像时 工作正常,但当我将其更改为等效的knitr命令时(我更喜欢这个命令,因为它更容易设置fig大小等)。 我得到以下错误: 当我在rmarkdown中切换到pdf的标准输出设置时,输出:pdf_document,knitr选项确实起作用,所以我猜问题一定与rt

    • 由于某种原因,当使用授权代码流()时,我的令牌配置没有得到尊重。id和auth令牌中都缺少和。 当我使用隐式授予流()时,它按预期工作(和存在于id令牌中)。 配置包括在下面。原因是什么?

    • 问题内容: 如何在不使用NetBeans等IDE的情况下在Java程序中导入库?在Netbeans中,我这样做:在此处输入图片说明 仅使用记事本++或程序员的记事本,我怎么能达到相同的目的。我不想使用Netbeans,因为 我只从事简单的项目,所以这可能会过分杀人。 问题答案: javac -classpath external.jar myClass.java 编辑: 如果您的主要班级在包裹中

    • 正在寻找旧JSF页面的解决方案。我试图使用contains方法根据另一列是否包含单词red box来呈现组合框。 这一个工作和组合框被禁用。 但是,我也想在值不包含红色框时渲染它们,但随后将启用combox。 这是行不通的。 因此,我如何测试的任何想法都不包含特定的单词。我还尝试了choose test when,但由于第一个表。col4值只是一个空字符串。 有什么想法吗?谢谢。

    • 我已经和这件事斗争了一天多,在SO和其他地方读了很多帖子,但我仍然有问题。 我需要在一个自包含的JavaFX应用程序包中包含我的应用程序图标。我使用的是JDK1.8.0_45及其包含的JavaFX包。我正在使用Maven构建.exe,除了我不能包含我的图标外,它都运行得很好。 下面是我的pom.xml: 使图标出现在标题栏中的是javapackager部署步骤的参数。这一行告诉inno安装程序使用