Java SpringBootMaven提供的作用域包括在WAR中,但不包括IDE运行时
我花了一个周末的时间试图弄明白为什么一个简单的Java SpringBootMaven提供的作用域包括在WAR中,但不包括IDE运行时,java,spring,maven,intellij-idea,spring-boot,Java,Spring,Maven,Intellij Idea,Spring Boot,我花了一个周末的时间试图弄明白为什么一个简单的springboot项目可以在命令行中运行,但不是通过我的intellij15.0.2ide实现的,最后将它缩小到以下范围: 我正在使用嵌入式Tomcat 默认依赖项如下所示: <dependencies> ... <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-b
springboot
项目可以在命令行中运行,但不是通过我的intellij15.0.2ide
实现的,最后将它缩小到以下范围:
<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>
...
org.springframework.boot
范围李>
我可以将
范围
更改为编译
,但这感觉像是一次黑客攻击。这是唯一的解决办法吗?我也有同样的问题。我修正了我的评论范围
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<!--<scope>provided</scope>-->
</dependency>
org.apache.tomcat.embed
汤姆卡特·贾斯珀
如果要从命令行运行,为什么还要提供依赖项?只有当您打算创建一个war文件以便在服务器上部署时,才应该提供它们,如果您想从命令行运行它,则应该提供它们(Spring引导插件将它们移动到jar/war中的一个单独目录中,以便从命令行运行时,jar仍然可用).@M.Deinum我的目的是最终在服务器上独立部署WAR文件,从而提供范围。正如您所说,它确实运行命令行,因为SpringBoot插件将它们放在一个单独的目录中。但是,我的IDE(IntelliJ)看不到提供的范围依赖项。试图找出一种在我编写代码时通过IDE进行调试的方法,并以尽可能干净的方式进行。您是否在Intellij中启用了Spring引导功能?可能重复