带有配置文件的多个Spring Boot应用程序类

时间:2015-12-01 09:01:10

标签: spring-boot

我要求能够在容器环境中运行我的Spring Boot,并且作为独立的胖JAR。在前一种模式中,应用程序需要向Consul注册自己,因为它用于服务发现,而在后面我们需要完全禁用此集成。

为了实现这一点,我创建了2个应用程序类:(我实际上在这里使用了一个抽象的父级来进行重复注释,但为了简洁我省略了这一点)

@SpringBootApplication(exclude = {
    ConsulAutoConfiguration.class, ConsulBusAutoConfiguration.class })
@EnableConfigurationProperties
@Profile("standalone")
public class ApplicationStandalone extends SpringApplication {

    ...

}

[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.3.0.M5:repackage (default) on project mio-lmpp-service: Execution default of goal org.springframework.boot:spring-boot-maven-plugin:1.3.0.M5:repackage failed: Unable to find a single main class from the following candidates [tv.nativ.mio.lmpp.ApplicationConfig, tv.nativ.mio.lmpp.ApplicationConfigStandalone] -> [Help 1]

请注意使用配置文件,并且独立版本不包括Consul的自动配置类。

当我尝试通过Maven构建JAR时,我收到以下错误:

{{1}}

最好的方法是什么?

由于

尼克

1 个答案:

答案 0 :(得分:0)

您有两个选择

  1. spring-boot-maven-plugin中定义main class during the buildYou can also parametrize it for the build.

  2. 在属性文件或命令行中定义主类。但您需要使用PropertyLauncher而不是默认org.springframework.boot.loader.JarLauncher