我正在尝试读取pom.xml的值并将其注入application.properties。但我无法做到这一点。 在我的pom.xml中,我有如下属性值:
<properties>
<app.mobile.db.host>
${env.APP_MOBILE_DB_HOST}
</app.mobile.db.host>
...
</properties>
并且,APP_MOBILE_DB_HOST来自.m2文件夹的settings.xml。 我在pom.xml中添加了以下行。
<build>
<resources>
<resource>
<filtering>true</filtering>
<directory>src/main/resources</directory>
</resource>
</resources>
....
在application.properties中,我正在访问
app.host= @app.mobile.db.host@
在Spring启动时,我使用@ConfigurationProperties从application.properties中读取值。 但是当我打印它时,它只打印@ app.mobile.db.host @。 我哪里错了?请帮助。
答案 0 :(得分:0)
@
仅在您使用spring-boot-starter-parent
时才有效。另外,如果您希望值来自settings.xml
,则不应在pom.xml
中重新定义该值。最后,env.x
语法用于环境变量;从您的pom中删除该行并将application.properties
更改为app.host = @APP_MOBILE_DB_HOST@
应解决此问题。如果您绝对必须为APP_MOBILE_DB_HOST
创建别名,请在app.host=${APP_MOBILE_DB_HOST}
中将其定义为pom.xml
,尽管我不确定Maven是否会为属性解析执行多次传递。
通过运行mvn resources:resources -DAPP_MOBILE_DB_HOST=test
并检查target/classes/application.properties
来验证您的更改。您不需要运行该应用程序。