java如何访问maven。建筑Quarkus中用于资源筛选的时间戳
访问应用程序的版本和名称可以正常工作。但我还想使用maven访问Quarkus应用程序的构建日期/时间。我知道,已经有这方面的帖子了,但我不能让它为Quarkus工作
我有一份申请。属性文件包含:
# info properties
quarkus.application.version=1.0
quarkus.application.timestamp=${maven.build.timestamp}
在波姆。xml,资源筛选已激活:
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>${version.resources-plugin}</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>process-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/classes/META-INF/resources/</outputDirectory>
<resources>
<resource>
<directory>name-frontend/dist/name-frontend</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
在Java中,通过以下方式访问它:
@ConfigProperty(name = "quarkus.application.version") // <--- works
String version;
@ConfigProperty(name = "quarkus.application.name") // <--- works
String name;
@ConfigProperty(name = "quarkus.application.timestamp") // <--- what to use here?
String buildDate;
错误:
Caused by: java.lang.RuntimeException: Failed to start quarkus
Caused by: java.util.NoSuchElementException: SRCFG00011: Could not expand value maven.build.timestamp in property quarkus.application.timestamp
离开申请。没有${maven.build.timestamp}
的属性文件确实允许构建继续进行,但当然没有构建时间
# 1 楼答案
你可能想使用Maven的Resource Filtering
您可以删除添加的
maven-resources-plugin
,只需使用以下配置Maven:然后
quarkus.application.timestamp=${maven.build.timestamp}
中的application.properties
将在执行生成时自动替换