多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
###69.1.1. 使用Maven自动暴露属性 你可以使用Maven的资源过滤(resource filter)自动暴露来自Maven项目的属性,如果使用`spring-boot-starter-parent`,你可以通过`@..@`占位符引用Maven项目的属性,例如: ```properties app.encoding=@project.build.sourceEncoding@ app.java.version=@java.version@ ``` **注** 如果启用`addResources`标识,`spring-boot:run`可以将`src/main/resources`直接添加到classpath(出于热加载目的),这就绕过了资源过滤和本特性。你可以使用`exec:java`目标进行替代,或自定义该插件的配置,具体查看[插件使用页面](http://docs.spring.io/spring-boot/docs/1.4.1.RELEASE/maven-plugin/usage.html)。 如果不使用starter parent,你需要将以下片段添加到`pom.xml`中(`<build/>`元素内): ```xml <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> ``` 和(`<plugins/>`元素内): ```xml <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>2.7</version> <configuration> <delimiters> <delimiter>@</delimiter> </delimiters> <useDefaultDelimiters>false</useDefaultDelimiters> </configuration> </plugin> ``` **注** 如果你在配置中使用标准的Spring占位符(比如`${foo}`)且没有将`useDefaultDelimiters`属性设置为`false`,那构建时这些属性将被暴露出去。