用于spring启动应用程序的conf文件

时间:2017-04-24 09:32:11

标签: spring-boot

我在Linux发行版中运行spring boot应用程序作为服务。通常我为胖罐做一个符号链接,并创建指向符号链接文件的服务

-rw-r--r-- 1 root root 152 Apr 19 13:53 bootstrap.yml
-rwxr--r-- 1 root root 59M Apr 11 12:39 common-service-0.0.1-SNAPSHOT.jar
-rw-r--r-- 1 root root  17 Apr 24 10:55 common-service.conf
lrwxrwxrwx 1 root root  33 Apr 10 09:42 common-service.jar -> common-service-0.0.1-SNAPSHOT.jar

现在,当我启动该服务时,它无法识别common-service.conf,但如果我将名称更改为common-service-0.0.1-SNAPSHOT.conf,它确实可以正常运行

他们是一种使用符号链接文件名而不是实际文件名使弹簧启动读取配置文件的方法

1 个答案:

答案 0 :(得分:0)

我确实在春季启动时更新了launch.script,如同PR一样。

基本上我所做的就是保存原始文件名

originalconfigfile="$(basename "${jarfile%.*}.conf")"

然后如果一个conf文件与originalconfigfile存在,请使用它,如果不检查真实的那个

[[ -r "${CONF_FOLDER}/${originalconfigfile}" ]] && source "${CONF_FOLDER}/${originalconfigfile}"
[[ ! -r "${CONF_FOLDER}/${originalconfigfile}" ]] && [[ -r "${CONF_FOLDER}/${configfile}" ]] && source "${CONF_FOLDER}/${configfile}"

然后我在pom中使用了这个更新的脚本

             <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <executable>true</executable>
                    <embeddedLaunchScript>launch.script</embeddedLaunchScript>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>build-info</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>