我想要一个开发人员,该开发人员在pom.xml中定义,带有标签,以在构建过程后出现在application.yml中。它以某种方式可以处理除开发人员以外的所有属性。
这是在Spring Boot项目中,我希望在构建过程中填充属性。
这是pom.xml的摘录
<description>my description</description>
<developers>
<developer>
<id>12345</id>
<name>John Doe</name>
<email>john@doe.com</email>
</developer>
</developers>
这是在application.yml中
info:
description: "@project.description@"
developer: "@project.developers[0].id@"
它仅用于描述,不适用于开发人员。我尝试了许多变体,例如$ {..},“ @ project.developers.0.id”。似乎没有任何作用。
如果有人有一个主意,我将非常感谢。
答案 0 :(得分:2)
您可以通过这种优雅的方式读取开发者 id
或 email
地址或 pom.xml
中的任何值:
build-info.properties
BuildProperties
轻松读取此文件中的值。pom.xml:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>build-info</goal>
</goals>
<configuration>
<additionalProperties>
<developer>${project.developers[0].email}</developer>
</additionalProperties>
</configuration>
</execution>
</executions>
</plugin>
这将在 build-info.properties
目录下生成一个 META-INF
文件,其内容如下:
build.artifact=<artifactId-from-pom>
build.group=<groupId-from-pom>
build.name=<name-from-pom>
build.time=<build-time>
build.version=<version-from-pom>
build.developer=<email-of-the-first-developer-from-pom>
然后您可以使用 Spring 读取值:
@Configuration
public class OpenApiConfiguration {
@Autowired
private BuildProperties buildProperties;
@Bean
public OpenAPI customOpenAPI()) {
return new OpenAPI().info(new Info()
.title(...)
.version(buildProperties.getVersion())
.contact(new Contact().email(buildProperties.get("developer"))));
}
}
阅读:
希望对您有所帮助。
答案 1 :(得分:-1)
在属性上添加它,并在pom和属性文件上使用,例如:
<properties>
<team.name>John Doe</team.name>
</properties>
用于开发者数据:
<developers>
<developer>
<name>${team.name}</name>
...
然后在应用程序中使用属性:
description: "@team.name@"