Spring boot rpm的外部化配置
简介: 这个问题很类似于,我搜索了一下,但不幸的是,到目前为止没有任何结果。既不在spring boot maven插件中更改为Spring boot rpm的外部化配置,spring-boot,rpm,spring-boot-maven-plugin,Spring Boot,Rpm,Spring Boot Maven Plugin,简介: 这个问题很类似于,我搜索了一下,但不幸的是,到目前为止没有任何结果。既不在spring boot maven插件中更改为packaging=ZIP,也不使用或中解释的loader.path,因此我肯定遗漏了什么。还有一件事,如果可能的话,我希望避免将每个配置文件作为参数传递给file://... 我有一个应用程序,它最初是几种服务类型的模拟器:sftp、soap等。最初它支持通过属性文件配置的每种服务器类型的一个实例 我现在已经更新了它,以支持不同端口上的多个服务器实例,并且在YAML
packaging=ZIP
,也不使用或中解释的loader.path
,因此我肯定遗漏了什么。还有一件事,如果可能的话,我希望避免将每个配置文件作为参数传递给file://...
我有一个应用程序,它最初是几种服务类型的模拟器:sftp、soap等。最初它支持通过属性文件配置的每种服务器类型的一个实例 我现在已经更新了它,以支持不同端口上的多个服务器实例,并且在YAML文件中完成了配置,并且我还从classic spring迁移到boot。最后,应用程序以RPM的形式交付,其结构如下
installation-dir
|--bin
| '-- simulator.sh [lifecycle management script]
|--config
| |--application.properties
| |--log4j2.xml
| |--samples [sample files for various operations]
| | |-- sample1.csv
| | |-- sample2.csv
| | '-- sample3.csv
| |--simulators.yaml [simulators config]
| '--simulator.jks
|--lib
| '-- simulator-1.0.jar
'--log
'-- simulator.log
在此之前,simulators.sh
启动了主类,将config
dir添加到类路径中,spring将加载属性文件而不会出现任何问题:
java <other args> -cp "..." com.whatever.SimulatorLauncher
忽略一点事实,即它没有找到application.properties
,模拟器的配置加载如下:
@配置
@ConfigurationProperties(locations={“classpath:/simulators.yml”},ignoreUnknownFields=false,prefix=“simulators”)
公共类模拟器设置{
私有静态最终记录器日志=LoggerFactory.getLogger(SimulatorSettings.class);
@NotNull
私人名单;
@NotNull
私有列表soap;
由于配置应该是可更新的,而无需重新打包应用程序,因此所有文件都将从生成的jar中排除,而是打包在rpm中的config
:
org.apache.maven.plugins
maven jar插件
2.6
应用程序属性
log4j2.xml
样品/**
模拟器.yml
模拟器.jks
org.springframework.boot
springbootmaven插件
重新包装
com.whatever.SimulatorLauncher
拉链
org.codehaus.mojo
rpm maven插件
2.1.5
...
...
${rpm.app.home}/config
src/main/resources
应用程序属性
模拟器.yml
log4j2.xml
nls-sim.jks
755
非常感谢任何帮助或提示。我最终删除了
spring boot maven插件
,以防止重新打包,并使用我的人工制品及其依赖项创建了RPM,并像以前一样启动了应用程序:
java <other args> -cp "<installation dir>/config:...:<libs>" com.whatever.SimulatorLauncher
java-cp”/config:…:“com.whater.SimulatorLauncher
尽管如此,我还是很想知道是否有人知道如何使用spring boot重新打包的jar实现这一点…我最终删除了
spring boot maven插件以防止重新打包,并使用我的人工制品及其依赖项创建了RPM,并像以前一样启动了应用程序:
java <other args> -cp "<installation dir>/config:...:<libs>" com.whatever.SimulatorLauncher
java-cp”/config:…:“com.whater.SimulatorLauncher
尽管如此,我还是很想知道是否有人知道用一个重新打包的spring boot罐子做这件事的方法