分类 java 中的文章

使用自动更新 maven 子模块的版本及依赖的 parent 版本

需求背景 当一个版本发布,新起一个版本时,我们需要更改一下项目中的版本号。 一个maven工程,如果只是一个单一的主项目,那么只要手动修改一下 pom.xml 就 可以了,耗不了多少时间。 但是如果这个maven项目有很多的子模块项目,那么一个个手动的去改就比较麻烦, 大一点的项目可能会有几十个,这样子一……

阅读全文

使用sh脚本自动获取当前项目的构建的 jar 文件路径

背景 使用 java 的 maven 构建项目时,若有很多命令是基于这个 jar 文件运行的。每次升级构建的版本号时都要将一些 .sh 文件的该 jar 文件改动文件名中版本号的部分。 忘记了话,下次运行时用的就是旧的版本。若是能够自动获取最新的 jar 文件路径,那么就可以不用有这个烦恼了。 直接执行对应的 .sh 文件即可。 定义一个函数集的 sh……

阅读全文

maven安装本地 jar 包

参考文章 参考文章 1 参考文章 2 实现方式 mvn install:install-file -Dfile=/path/to/jar/your-jar-file.jar -DgroupId=com.example -DartifactId=your-artifact-id -Dversion=1.0 -Dpackaging=jar 若上述命令中的 -Dfile=所需要参数路径中有特殊字符的话,则可以使用双引号,即: mvn install:install-file -Dfile="/path/to/jar/your-jar-file.jar" -DgroupId=com.example -DartifactId=your-artifact-id -Dversion=1.0 -Dpackaging=jar……

阅读全文

maven打包跳过测试的 2 种方式区别

参考文章 CSDN 参考文章 命令行方式跳过测试 # 既不编译测试类,也不运行测试。 mvn package -Dmaven.test.skip=true # 编译测试类,但不运行测试。 mvn package -DskipTests=true……

阅读全文

SpringBoot 应用使用 ThinLayout 打包的一些注意事项

参考 本文主要参考: 廖雪峰-瘦身Spring Boot应用 Spring Boot Thin Launcher GitHub 官方站点 改进打包配置 针对原文 瘦身Spring Boot应用 中已不适用新版 1.0.31的内容进行调整。 首先需要在打包插件中添加repackage的execution,其目的是将spring-boot-thin-layou……

阅读全文

Mac下使用GraalVM和SpringBoot3.1构建本地应用

准备工作 安装GraalVM工具 使用 sdkman 下载并安装 GraalVM的jdk sdk install java 22.3.1.r17-grl 安装好后,将该sdk设置为默认 sdk default java 22.3.1.r17-grl 检查版本 java -version openjdk version "17.0.6" 2023-01-17 OpenJDK Runtime Environment GraalVM CE 22.3.1 (build 17.0.6+10-jvmci-22.3-b13) OpenJDK 64-Bit Server VM GraalVM CE 22.3.1 (build 17.0.6+10-jvmci-22.3-b13, mixed mode, sharing) 检查gu工具版本: gu --version GraalVM Updater 22.3.1 安装native-image gu install native-image # 若无法正常安装,可以将其github.co……

阅读全文

使用Dom4j配合xpath解析jmeter脚本文件

引入的依赖 <dependency> <groupId>org.dom4j</groupId> <artifactId>dom4j</artifactId> <version>2.1.3</version> </dependency> <dependency> <groupId>jaxen</groupId> <artifactId>jaxen</artifactId> <version>1.2.0</version> </dependency> 注意:使用 dom4j 配合 xpath 的时候,必须要引入 jaxen 依赖项,否则无法使用 xpath. 如果没有添加依赖的话,会报如下错误: 如果没有添加的话 会出现以下错误 * Exception in thread "main" java.lang.NoClassDefFoundError: org/jaxen/NamespaceContext * at org.dom4j.DocumentFactory.createXPath(DocumentFactory.java:230) * at org.dom4j.tree.AbstractNode.createXPath(AbstractNode.java:207) * at org.dom4j.tree.AbstractNode.selectSingleNode(AbstractNode.java:183) 解析 jmeter 脚本文件 jmeter 的脚本文件本质上是 xml 格式的文本文件。 重点使用的函数是selectNodes或……

阅读全文

使用picocli开发基于springboot的命令行工具

添加 maven 依赖 当你已经创建好 springboot 应用后,将 picocli 的依赖加入到 pom.xml 中 <dependency> <groupId>info.picocli</groupId> <artifactId>picocli-spring-boot-starter</artifactId> <version>4.6.3</version> </dependency> 修改 springboot 主程序 将你的 springboot 主程序修改为实现了ApplicationRunner接口,并将主程序命令定义为helper package top.yjp.testing; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import picocli.CommandLine; import top.yjp.testing.helper.cmd.DemoCommand; import javax.annotation.Resource; @SpringBootApplication(proxyBeanMethods = false) @Slf4j @CommandLine.Command( name = "helper", description = "自动化测试帮助程序 ", mixinStandardHelpOptions = true, version = "1.0.1", subcommands = {DemoCommand.class} )……

阅读全文

SpringBoot配置JSON格式的日志输出

前言 当应用被拆分为N多个微服务时,当系统遇到问题,能够准确的查看日志就成了一个非常现实的问题。 原因是以容器方式运行的服务可能分布在不同的服务器上,至少十几个的微服务,甚至更多。同时由于也不太可能给到研发人员所有的相关服务器权限, 因此,需要一个集中的日志查看分析的系统,这个系统就是……

阅读全文