当前位置: 首页 > 知识库问答 >
问题:

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

姬慎之
2023-03-14

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

我正在使用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>

我如何指定这个插件中的属性?

共有1个答案

范志勇
2023-03-14

您添加的Java系统属性只能被添加到的进程访问,因此即使您在Maven构建期间添加了一些系统属性,当构建完成时,这些属性也将不再存在。

如果你把罐子分给别人会发生什么。您如何期望这些属性可用?

请参阅本文,了解如何在运行时以类似的方式访问artifactId和version,您可以将时间戳条目添加到src/main/resources/project.properties

buildTimestamp=${timestamp}

timestamp不是像project.versionproject.artifactid那样的预定义属性。因此,您必须设置从Maven属性${Maven.build.timestamp}提取时间戳,并将其设置为timestamp属性的值。这在本题中已经有了答案。

 类似资料:
  • https://marketplace.visualstudio.com/#VSCode Node.js插件支持 https://github.com/SamVerschueren/vscode-ava

  • YOG2 插件系统是整个框架的骨架。在 YOG2 中,从中间件管理到日志系统和FIS静态资源管理,所有功能的引入都是以插件的形式引入的,因此在了解每个功能的具体用法之前,我们需要对插件系统有一个整体的了解。 YOG2 插件系统的设计目标是 通过插件系统实现功能与配置的分离 功能由插件自身实现 配置由插件系统统一管理,完全暴露给用户 这样设计的优点是我们可以对 yog2 project 的运行时核心

  • Home assistant 支持设备显示的高度自定义,你可以给设备更换昵称、图标、图标以及隐藏设备等。 设置方法 设备的个性化由 customize 模块定义,默认配置文件 configuration.yaml 中 customize 位于 homeassistant模块下: homeassistant: # 名称,可为中文 name: 家 # 纬度 latitude: !sec

  • 在编写扩展之前,我们首先需要了解一下 Cocos Creator 3D 内,扩展的基础结构。 Cocos Creator 3D 编辑器是基于 GitHub 的 Electron 内核开发。Electron 是一个集成了 Node.js 和 Chromimu 的跨平台开发框架。 在 Electron 的架构中,一份应用程序由主进程和渲染进程组成,其主进程负责管理平台相关的调度,如窗口的开启关闭,菜单

  • 我正在将一个ant脚本转换成Maven,并决定使用Maven ant run插件。我走在好的路上,但是我遇到了下面的问题。Ant源脚本使用如下目标定义: 关键是要使用属性值 abc.home 在构建周期的后期,这取决于操作系统(Win、Linux)。在ant脚本中,这是可以的,但是maven ant run插件不支持使用多个目标。我不想使用Maven配置文件标记。如果有,我想使用ant标签?有人有