我試圖從pom.xml加載屬性到application.properties中。我想創建兩個配置文件:dev和prod來使用不同的數據庫url。我使用Jenkins作爲CI,在我的所有應用程序中(主要是Spring MVC,沒有Boot項目)正在使用maven配置文件部署到Tomcat。有任何可能性使用maven屬性來做到這一點? 我試過類似的東西: spring.datasource.url=${jdbc.url}
在Spring Boot的application.properties中使用Maven屬性
回答
之前,你這樣做,考慮外在屬性文件出你的部署包。這樣,您可以在每個環境中部署相同的編譯。它將爲Jenkins節省一些實際上不必要的工作。最好的做法是隻構建一次你的應用程序,但是,如果你不相信,這裏是如何做到這一點。
在你的pom.xml定義配置文件提供屬性相應的值。
<profile> <id>dev</id> <properties> <jdbc.url>your_dev_URL</jdbc.url> </properties> </profile>
設置的Maven Resources Plugin過濾包含您application.properties文件的目錄。
<build> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> ... </build>
如果你使用Spring啓動1.3以上,你應該知道的事實是,爲了避免春節引導佔位符和令牌由Maven的資源插件過濾之間的衝突,該框架介紹a solution that requires using a different syntax的篩選值。
現在,而不是
${property.key}
你應該使用@[email protected]
。在這種情況下,您的application.properties必須包含下面的示例,你期望的工作:[email protected][email protected]
您還可以檢查出後約separating Spring properties files for different Maven profiles。這樣你將從你的pom.xml中外部化值。
當然有。只需在您的application.properties文件上使用Maven Filtering文件,Maven將在文件中寫入您的配置文件特定值。
但是,您必須瞭解,儘管Maven配置文件在應用程序包/構建時工作,但Spring Boot在運行時會執行這些配置文件。換句話說,使用Maven配置文件,您將獲得配置文件特定的不可變構建版本,而使用Spring Boot中的版本時,每次啓動它之前都可以更改應用程序配置或even while it's running。
參見:
您可以在這裏看到我的答案:http://stackoverflow.com/questions/36635163/spring-boot-externalizing-properties-not-working/36635367#36635367關於如何外部化屬性的示例 –
- 1. 如何在Maven pom.xml中從application.properties(Spring Boot)中重用屬性?
- 2. Spring Boot application.yml和application.properties
- 3. Spring Boot - 用於.bash_profile的application.properties中的JAVA_OPTS?
- 4. Spring-Boot>使用JNDI設置application.properties
- 5. 在使用spring引導和spring-boot-maven-plugin生成war時排除application.properties
- 6. Spring Boot無法讀取Docker中的application.properties
- 7. @Preauthorize中的Spring Boot屬性
- 8. 在測試中沒有使用application.properties的spring-boot
- 9. 在application.properties中使用pom.xml的屬性值
- 10. 使用spring-boot-maven-plugin
- 11. Spring Boot的外化屬性
- 12. NoClassDefFoundError spring boot maven
- 13. 在Spring Boot中讀取屬性文件
- 14. 無法在Spring Boot中獲取屬性
- 15. 在Spring Boot中讀取屬性值
- 16. 使用spring-boot時是否可以使用spring-boot命令行屬性:運行?
- 17. 使用單獨的application.properties創建Spring Boot測試
- 18. 如何使用application.properties配置spring boot來設置hibernate的配置
- 19. Spring Boot Logback DB Appender屬性
- 20. 使用spring-boot的Maven模塊
- 21. SpringBoot application.properties中的未知屬性
- 22. Maven和spring-boot-dependencies
- 23. 如何在Spring的application.properties文件中定義c3p0屬性
- 24. Spring Boot如何在yaml的application.properties中設置spring.config.location
- 25. Spring Boot項目中的application.properties文件在哪裏?
- 26. Spring Boot:如何使用UTF-8加載application.properties文件
- 27. Spring Boot:使用數據庫和application.properties進行配置
- 28. 使用Spring Boot在@GetMapping中將屬性添加到Controller窗體
- 29. 在spring-boot測試中使用屬性文件
- 30. 如何使用Tomcat 8 + Spring Boot + Maven
這不無需使用標記即可工作。 –
Maven配置文件默認情況下未激活。你需要自己激活它。調用構建時,可以用'-P'標誌觸發配置文件。你不是被迫使用'activeByDefault'。 –