我花了整个周末试图弄清楚为什么一个简单的Spring Boot
项目使用命令行,但不是通过我的IntelliJ 15.0.2 IDE
并最终将其缩小到以下内容:
默认依赖关系如下:
<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>
provided
范围。 因此,命令行构建的WAR文件包含为嵌入式Tomcat提供的范围JAR,但是通过IntelliJ IDEA运行的实例不包含。
以前有没有人碰过这个?
解决问题的最佳方法是什么?
我可以将scope
更改为compile
,但这感觉就像是黑客。这是唯一的解决办法吗?
答案 0 :(得分:1)
我有同样的问题。我修正了我对范围的评论。
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<!--<scope>provided</scope>-->
</dependency>