I am developing a web application using Spring Boot, and want to generate war instead of jar.
It works very fine using the conversion from jar to war described here : http://spring.io/guides/gs/convert-jar-to-war/
But I want to exclude the application.properties from the war, because I use @PropertySource(value = "file:${OPENSHIFT_DATA_DIR}/application.properties") to get the file path on production environment.
This method works when generating my war, but in eclipse I can't run my application because application.properties not copied at all to target/classes :
<build> <resources> <resource> <directory>src/main/resources</directory> <excludes> <exclude>application.properties</exclude> </excludes> </resource> </resources> </build>This method doesn't work at all, I think that spring-boot-maven-plugin doesn't support packagingExcludes :
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <packagingExcludes>WEB-INF/classes/application.properties</packagingExcludes> </configuration> </plugin> </plugins> </build>
Have you another suggestion?
Thanks
spring.config.locationparameter. I set it in Tomcat's context file for example to point to the configuration file I use in production environment. Have you tried doing it like this or is this solution not ideal for you? Or you could perhaps achieve exactly what you are trying to do by using different Maven build profiles for dev and production? I mean that application.properties would be excluded only if you packaged your app with production Maven profile ... - Bohuslav Burghardt