使用Jenkins部署SpringBoot的Native项目(GraalVM)


提前声明:下文均使用Gradle进行项目的管理,没有使用Maven进行项目的管理。 1. 准备工作 注意: 1.GraalVM编译需要gcc,在编译打包之前需要在Jenkins编译机器上先安装gcc。 2.GraalVM编译需要libz.a,因此需要在Jenkins编译机器上先安装zlib。 3.G

基于GraalVM实现AOT启动SpringBoot项目


1. 安装GraalVM 需要使用GraalVM,需要在Oracle官网下载支持GraalVM的JDK,https://www.oracle.com/java/technologies/downloads/ 。 下载完成之后需要配置环境变量GRAALVM_HOME,指向GraalVM的家目录,后面N

如何启动JFR(Java Flight Recorder)

jdk 

JFR可以基于命令行和jcmd两种方式进行开启 1.基于JVM启动参数开启JFR 配置方式和jcmd基本上完全一致,区别在于jcmd当中,指定多个参数是使用空格分割的自定义参数,命令行启动参数的方式启动是使用的,分隔多个自定义参数。 参考命令如下: -XX:StartFlightRecording=

HotspotVM的OOP模型

jdk 

本文主要详细介绍Klass/Class/Oop之间的关系,从HotSpotVM的Cpp源码层面去进行相关的方法解析,还会介绍方法区的动态性的原理(运行时动态生成和加载字节码的原理)。 ps:本文中的环境使用的是OpenJDK11 1. 一起去了解HotSpotVM中的Oop模型吧! 我们以下面的代码

JCMD工具导出JVM线程栈(JSTACK)

jdk 

针对两种需求,提供对应的实现方式。 输出线程栈信息到命令行。 输出线程栈信息到文件。 1.输出线程栈命令行 输出线程栈到命令可以使用如下命令 jcmd <pid> Thread.print 使用如下命令查看帮助文档 jcmd <pid> help Thread.print # 帮助文档如下 Pr

Java当中基于ASM进行类元信息的采集

jdk 

基于ASM实现方法参数名的收集 open class LocalVariableTableParameterNameDiscoverer : ParameterNameDiscoverer { companion object { private val NO_DEB

JDK提供的@Repeatable注解的作用

jdk 

我们都知道,在一个方法/类/字段上,对于同一个注解,只能添加一个,如果添加重复的注解,那么就会出现如下这样的错误。 那么我们如何实现在一个类上标注多个相同注解?其实有一种方式,比如我们的ComponentScan注解和@ComponentScans注解。在@ComponentScans中定义一个va

Jenkins实现Maven/Gradle项目自动编译+部署


1.安装Jenkins Jenkins安装手册 https://www.jenkins.io/doc/book/installing/ Jenkins官方的下载地址: https://www.jenkins.io/download/ 找到合适的版本,使用wget命令进行下载 wget https

JVM Debugger

jdk 

1.JVMDebugger的实现 package com.wanna.web.debug; import com.sun.jdi.*; import com.sun.jdi.connect.AttachingConnector; import com.sun.jdi.connect.Connect