上下文
我有一个Maven模块(让我们称之为服务)。
它使用Spring-Boot(非Web环境)@ConfigurationProperties
从一个或多个.properties
文件加载配置。在运行时,配置存储在单个类MyConfiguration.java
中,其中包含所有已知属性的getter。
目标是让其他模块/项目(让我们称之为应用)拥有各自的.properties
文件并使用服务来自动填充配置。此外,服务通过src/main/resources
root-settings.properties
导出,其中包含所有应用所需的项目属性的占位符。
希望通过基于pom.xml
一个这样的属性是版本。在服务中,测试通过以下设置验证是否由Maven替换:
root-settings.properties
applicationVersion=${project.version}
pom.xml
<build>
<testResources>
<testResource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
</testResource>
</testResources>
</build>
问题
如何配置或重新设计服务,以便来自应用的单一依赖关系和对MyConfiguration.getInstance().getApplicationVersion()
的调用提供应用<的< /强>
目前的情况是,当应用依赖于服务时,如上所示的root-settings.properties
会出现在其类路径中。但是仍有两个问题:
${project.version}
,因为root-settings.properties
位于外部.jar中。我需要配置另一个目标来解压缩.jar并希望之后应用资源过滤。pom.xml
相关问题
为了相关性,这两个主题可能略有关联:
- Maven filtering on resources stored in dependencies
- Filter maven resources with filter-file from external dependency