我要求能够在容器环境中运行我的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}}
最好的方法是什么?
由于
尼克
答案 0 :(得分:0)
您有两个选择
在spring-boot-maven-plugin
中定义main class during the build。
You can also parametrize it for the build.
在属性文件或命令行中定义主类。但您需要使用PropertyLauncher而不是默认org.springframework.boot.loader.JarLauncher
。