Spring引导uber jar无法从.properties文件

时间:2016-02-04 14:47:56

标签: spring maven jar spring-boot

我的Spring Boot应用程序在从Eclipse IDE中运行时工作正常,但是当我执行一个超级jar时,我得到了异常:

Caused by: java.lang.NumberFormatException: For input string: "${device.port}"
            at java.lang.NumberFormatException.forInputString(Unknown Source) ~[na:1.8.0_65]
            at java.lang.Integer.parseInt(Unknown Source) ~[na:1.8.0_65]

表示此值:

@Value("${device.port}")
private String port;

不是位于src / main / resources中的.properties文件中设置的值:

device.port=5672

但只是一个字符串“$ {device.port}”,后来解析为Integer。

@PropertySource(“classpath:default.properties”)设置正确,这就是我的main函数的样子:

public static void main(String[] args) {
    SpringApplication.run(App.class, args);
}

这是我对pom.xml的一部分,它可能对解决我的问题至关重要:

    <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
            <executable>true</executable>
            <archive>
                <manifest>
                    <mainClass>com.devices.App</mainClass>
                </manifest>
            </archive>
            <descriptorRefs>
                <descriptorRef>jar-with-dependencies</descriptorRef>
            </descriptorRefs>
        </configuration>
        <executions>
            <execution>
                <id>make-assembly</id>
                <phase>package</phase>
                <goals>
                    <goal>single</goal>
                </goals>
            </execution>
        </executions>
    </plugin>

如何让我的超级jar从.properties文件中读取数据?我相信我一定会错过一些愚蠢的东西。可能我必须在配置中指出我希望我的.properties文件包含在uber jar中。

0 个答案:

没有答案