我正在使用此Spring Boot指南使用Spring Boot Actuator构建RESTful Web服务。当访问终结点/执行器/info
时,我得到的是空的json响应{}
。
actuator api文档提到了包含构建信息(如工件、组、名称、版本)和git信息(如分支、提交等)的响应结构。
如何启用文档化的响应结构。我想使用maven作为构建工具(而不是gradle)。这是我的pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.7.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>actuator-service</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>actuator-service</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
我也有同样的问题,/exactor/info
总是返回{}
首先,添加插件(lombok不是必需的):
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
<executions>
<execution>
<goals>
<goal>build-info</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
</plugin>
第二,去Maven-
最后,运行你的应用程序,就这样!
下面是Gradle的工作解决方案。Gralde版本7.3.2 SpringBoot版本:2.6.1
包括项目的执行机构。应将以下依赖项添加到构建中。格雷德尔档案。
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-actuator'
}
默认情况下,只有健康在网络上可用。因此,要启用信息执行器,请在application.yml中添加以下条目
management:
endpoints:
web:
exposure:
include: "health,info"
现在,当我们运行应用程序并尝试访问/exactor/infoendpoint时,它会打印空json作为响应。这是信息执行器endpoint的默认行为。
从build生成buildInfo。gradle,在你的gradle文件中添加以下内容
springBoot {
buildInfo()
}
现在,如果运行应用程序并点击/exactor/infoendpoint,输出将是项目的构建信息
{"build":{"artifact":"actuator-service","name":"","time":"2022-01-12T18:16:28.468Z","version":"0.0.1-SNAPSHOT","group":"com.example"}}
另外,我们可以配置生成git提交信息。要做到这一点,你必须应用下面的插件
id "com.gorylenko.gradle-git-properties" version "1.5.1"
一旦完成,在项目构建中,它将生成一个名为git的文件。“生成/资源”文件夹中的属性。
现在, /actuator/infoendpoint也将从git.properties.生成git信息。默认情况下,它不会从git.properties.生成所有配置
如果希望在 /infoendpoint中看到完整的git配置,请在application.yml中执行以下配置
info:
git:
enabled: true
mode: full
参考文献:https://docs.spring.io/spring-boot/docs/2.1.7.RELEASE/reference/html/howto-build.html#howto-build-infohttps://docs.spring.io/spring-boot/docs/2.1.7.RELEASE/reference/html/howto-build.html#howto-git-info
经过进一步研究,我在文件中找到了答案:
将此添加到pom.xml.maven的插件部分将在构建./目标/类/git.properties
期间生成此文件。Spring将读取此文件的内容,并将其包含在/执行器/info
的响应中
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
</plugin>
查看Git提交信息和生成Git信息
向sping-boot-maven插件中添加一个执行目标。这将生成文件./目标/类/META-INF/build-info.properties
。Spring将读取该文件的内容,并将其包含在/执行器/info
的响应中
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.1.7.RELEASE</version>
<executions>
<execution>
<goals>
<goal>build-info</goal>
</goals>
</execution>
</executions>
</plugin>
来源:构建信息和生成构建信息
一、构建工具的作用 二、Java 主流构建工具 三、Maven 参考资料 一、构建工具的作用 构建一个项目通常包含了依赖管理、测试、编译、打包、发布等流程,构建工具可以自动化进行这些操作,从而为我们减少这些繁琐的工作。 其中构建工具提供的依赖管理能够可以自动处理依赖关系。例如一个项目需要用到依赖 A,A 又依赖于 B,那么构建工具就能帮我们导入 B,而不需要我们手动去寻找并导入。 在 Java 项
你需要的就是一套工具,能把你自动化构建的需求表示成可执行的顺序的任务(tasks),比如编译源代码,拷贝生成的class文件,组装交付。每一个任务都是一个工作单元,任务的顺序很重要,我们把任务和相互之间的依赖建模成一种有向无环图,比如下面这个: 有向无环图 包含两个部分: 节点(node):一个工作单元,在这里就是一个任务,比如编译源代码 边(edge): 一个有方向的边,表示相邻节点之间的依赖关
我尝试使用EMR工件存储库将emrfs-hadoop-assembly及其依赖项打包到应用程序中。 我查看了想通过Maven/Gradle获取的jar的pom.xml,得到了artifactId和groupId,但构建工具无法解决这些问题。
问题内容: 我正在使用Jenkins Pipeline插件,并且需要从其他作业中通过其ID和作业名称获取特定版本的所有参数。所以,基本上我需要这样的东西。 问题答案: 我想到了。我可以像这样检索参数
如何从Jenkins工作流groovy脚本中访问当前和相关的构建信息? 我可以看到像currentBuild这样的东西。结果和当前构建。previousBuild正在记录,但我看不到如何访问,例如: 当前生成作业的 URL。 此工作流触发的生成作业的 URL。 特定失败的生成作业的控制台输出等。 感谢任何指点。
我使用和gradle构建失败,错误如下。 失败:生成失败,出现异常。 > 出错原因:任务“:app:predebugbuild”执行失败。 在https://help.gradle.org获得更多帮助 在1s中生成失败