小编典典

在Spring Boot插件中定义系统属性

spring-boot

我想在我的应用程序中指定一些系统属性(在编译时确定)。

我正在使用Spring Boot Maven插件进行编译

当前,根据以下问题:为Maven项目指定系统属性我尝试了以下设置(但是对于其他插件,它不起作用)

    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <mainClass>application.boot.AppStarter</mainClass>
                <systemProperties>
                    <systemProperty>
                        <name>application.version</name>
                        <value>${application.version}</value>
                    </systemProperty>
                    <systemProperty>
                        <name>release.date</name>
                        <value>${timestamp}</value>
                    </systemProperty>
                </systemProperties> 
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>

如何在此插件中指定属性?


阅读 267

收藏
2020-05-30

共1个答案

小编典典

您添加的Java系统属性只能通过添加过程来访问。因此,即使您在Maven构建过程中设法添加了一些系统属性,构建完成后也将不再存在。

如果您将jar分发给其他人,将会发生什么。您如何期望这些属性可用?

以了解如何在运行时访问artifactId和版本。您可以通过类似的方式将时间戳条目添加到src/main/resources/project.properties

buildTimestamp=${timestamp}

timestamp不是类似project.version或的预定义属性project.artifactId。因此,您必须设置从Maven属性提取时间戳${maven.build.timestamp},并将其设置为timestamp属性的值。

2020-05-30