使用Spring Boot Maven插件时,jar文件中缺少Spring Boot应用程序中的资源

我使用Spring-Boot v1.3.0.M5和Maven v3.3.3。 我曾经能够使用此命令从控制台运行我的Spring Boot(启动)应用程序。

mvn clean package spring-boot:run

但是,我不得不修改我的pom.xml以考虑不同的环境构建。 特别是,我使用Maven配置文件来修改启动应用程序的属性文件。 现在,当我运行前面提到的命令时,启动应用程序无法运行并抱怨以下exception。

引起:java.lang.NumberFormatException:对于输入字符串:“$ {MULTIPART.MAXREQUESTSIZE}”

我有一个位于src/main/resources/config/application.properties的属性文件。 此属性文件有一堆键值对,如下所示。

 multipart.maxFileSize=${multipart.maxFileSize} multipart.maxRequestSize=${multipart.maxRequestSize} 

然后在我的pom.xml ,我的构建定义如下。

    src/main/resources true  **/*.properties    src/main/resources false  **/*.properties      org.springframework.boot spring-boot-maven-plugin       env-dev  true  env dev    250MB 250MB     env-stg  false  env stg    500MB 500MB    

我注意到如果我输入mvn clean package并查看jar文件, application.properties文件就在jar中。

但是,如果我输入mvn clean package spring-boot:run ,那么applications.properties文件不在 jar中。 实际上, src/main/resources下的任何内容都不会进入jar文件。

这个问题对我来说有点烦人,因为如果我想从命令行运行我的启动应用程序,我现在必须做两个步骤。

  1. mvn clean package
  2. java -jar ./target/app-0.0.1-SNAPSHOT.jar

关于我做错的任何想法?

如文档 mvn spring-boot:run 所述, mvn spring-boot:run会在类路径前添加src/main/resources以支持默认的热重载。 你可以轻松关闭它

  ...  ...  org.springframework.boot spring-boot-maven-plugin 1.2.7.RELEASE  false   ...  ...  

试试吧:

    src/main/resources/config true  **/*.properties