我有一个Spring Boot应用程序,需要:
mvn spring-boot:run
运行我还希望能够通过右键单击main并运行它在IDE(Eclipse或IntelliJ IDEA社区)中运行此应用程序。
这是我pom.xml有趣的部分(请注意,我不是从spring-boot-starter-parent pom继承的):
...
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
...
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring.boot.version}</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
这是我的SpringBootServletInitializer:
@Configuration
@EnableAutoConfiguration
@ComponentScan("com.company.theproject")
public class Application extends SpringBootServletInitializer
{
private static final Logger logger = LoggerFactory.getLogger(Application.class);
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application)
{
return application.sources(Application.class);
}
public static void main(String[] args)
{
SpringApplication.run(Application.class, args);
}
}
在IDE中运行main时,出现以下错误:
org.springframework.context.ApplicationContextException: Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean.
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.getEmbeddedServletContainerFactory(EmbeddedWebApplicationContext.java:183) ~[spring-boot-1.2.3.RELEASE.jar:1.2.3.RELEASE]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:156) ~[spring-boot-1.2.3.RELEASE.jar:1.2.3.RELEASE]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:130) ~[spring-boot-1.2.3.RELEASE.jar:1.2.3.RELEASE]
... 12 common frames omitted
好像mvn spring-boot:run
在运行main
直接运行时不会发生的更多魔术。
provided
从spring-boot-starter-tomcat
依赖关系中删除作用域可解决此问题,但当在servlet容器内运行战争时会引起麻烦。
现在,我发现的唯一“修复”是mvn spring-boot:run
在IntelliJ IDEA中运行,而不是直接运行main。尽管这是可以接受的解决方法,但我仍然想知道为什么它不起作用以及是否可以解决。
我的观察表明,当我运行springboot应用程序时,使用的类路径是我的 更改代码时,下的文件不会得到更新。Intellij IDE编译文件,但不更新类/生产目录。如何让hotswap与IntelliJ IDE一起工作以进行Spring-Boot?
现在尝试使用spring Boot。我们怎样做才能达到同样的目的? 在pom.xml中有 使用spring boot并执行命令
在 中测试代码依赖项。格雷德尔, 当我以的形式运行应用程序时,我得到了一个错误: 为什么在IDE中运行项目时使用测试依赖项?或者我错过了什么? 任何帮助都非常感谢:) 注: 1-如果我使用或gradle boot run在IDE之外运行它,它运行得很好 2-我尝试过刷新gradle项目、清洁项目等。 3-使用STS版本
我将Spring Boot应用程序打包为可执行JAR。应用程序有一个带有main方法的实用程序类,我想通过命令行调用它,但命令似乎无法在类路径中找到该类。
我将spring boot starter父级修改为2.3.0。通过此修改,我还引入了spring maven插件中的版本 我能够完成..但当我运行命令..我得到以下错误。 Lifecycle.LifecycleExecutionException:无法执行目标org.springframework.boot:spring-boot-maven-plugin:2.3.0。release:在项目上运
我有这个春靴应用程序。使用Quartz(一个功能丰富的开源作业调度库,几乎可以集成在任何Java应用程序中)在每月10日执行作业 在配置包中: 请参考一下,我有另一个类似的应用程序,没有,而且工作正常: