Spring boot rpm的外部化配置

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

简介:

这个问题很类似于,我搜索了一下,但不幸的是,到目前为止没有任何结果。既不在spring boot maven插件中更改为
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罐子做这件事的方法