Jenkins的流水线执行shell脚本执行jar命令后项目未启动未输出日志问题处理

现象

在流水线里配置了启动脚本例如,nohup java -jar xxx.jar >nohup.out 2>&1 &
但是在服务器发现服务并未启动,且nohup日志里没输出日志,这样的原因是jenkins在执行完脚本后,就退出了这个进程。

解决 

在启动脚本执行jar命令的上一步加入以下变量

BUILD_ID=DONTKILLME

 或则

export BUILD_ID=dontkillme
如果jenkins是流水线,使用以下这个即可
export JENKINS_NODE_COOKIE=dontkillme 


参考连接:解决Jenkins用shell脚本部署后,Jenkins自动杀掉启衍生出来的守护进程 - minseo - 博客园
                        
参考链接:Jenkins的流水线启动jar后未执行问题处理_jenkins构建成功但是没有运行jar-CSDN博客

### 配置 Jenkins Pipeline 使用 SonarQube 执行静态代码分析 #### 插件安装 为了使 Jenkins 能够与 SonarQube 协同工作,在 Jenkins 上需先安装 `SonarQube Scanner` 插件。这可以通过访问 Jenkins 的管理界面并导航到 "Manage Plugins" 来完成,之后搜索并安装名为 `SonarQube Scanner for Jenkins` 的插件[^1]。 #### 设置全局工具配置 进入 Jenkins 系统设置中的 “Global Tool Configuration”,添加一个新的 SonarScanner 工具定义。这里要指定 SonarScanner 的版本和安装路径,如果选择了自动安装,则会在首次构建时由 Jenkins 自动下载所需资源[^2]。 #### 创建或编辑 Jenkinsfile 对于想要集成 SonarQube 分析的任务,应在项目的根目录创建或修改现有的 `Jenkinsfile` 文件来描述 CI/CD 流水线逻辑。下面是一个简单的例子展示如何编写 Groovy 语法的声明式管道脚本来调用 SonarScanner: ```groovy pipeline { agent any environment { SONAR_SCANNER_HOME = tool name: 'SonarScanner', type: hudson.plugins.sonar.SonarRunnerInstallation } stages { stage('Build') { steps { sh './mvnw clean install' // 假设这是一个 Maven 构建命令 } } stage('Quality Gate Check with SonarQube') { steps { script { def scannerHome = tool 'SonarScanner' withEnv(["PATH+SONAR=${scannerHome}/bin"]) { sh "${scannerHome}/bin/sonar-scanner \ -Dsonar.projectKey=my_project_key \ -Dsonar.sources=src/main/java \ -Dsonar.host.url=http://localhost:9000 \ -Dsonar.login=<your-token>" } } } } } post { always { junit '**/target/surefire-reports/*.xml' archiveArtifacts artifacts: '**/target/*.jar', onlyIfSuccessful: true } } } ``` 此段代码展示了怎样利用环境变量设定 SonarScanner 的位置,并通过 shell 指令执行 sonar-scanner 命令来进行源码的质量检测。注意替换 `<your-token>` 和其他参数以匹配实际部署情况下的 SonarQube 实例地址及认证信息[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DN金猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值