shell - Jenkins 不会隐藏控制台上正在打印的 shell 脚本命令
问题描述
我已经设置了一个管道脚本,它将使用 maven 构建一个 JAR,并且参数来自 Jenkins 的 JAR。其中之一是密码。
stages {
stage('Maven Build') {
steps {
script {
echo "Maven Build"
withMaven(jdk: javaVersion, maven: mavenVersion) {
sh 'mvn clean install'
}
}
}
}
stage('Branch Creation') {
steps {
script {
sh """
set +x
"java -jar target/github-branch-creator-1.0-SNAPSHOT-jar-with-dependencies.jar ${params.Username} ${params.Password} ${params.value1} ${params.value2} ${params.value3}"
"""
}
}
}
}
我确实提到了"""
三重双引号来接受来自詹金斯的参数,并且确实提到了set +x
,但它仍然会在控制台中打印命令。
+java -jar target/github-branch-creator-1.0-SNAPSHOT-jar-with-dependencies.jar abc sensitive_password v1 v2 v2
我尝试在我的脚本#!/bin/bash +x
之上。groovy
我仍然发现它正在打印。如果有人可以帮忙?
解决方案
我认为如果您不以纯文本形式传递密码会更好。
您可以尝试的方法:
要么加密密码,然后将参数传递给命令行,你可以在你的java代码中使用它来解密它。
将命令写入文件,然后执行文件。
推荐阅读
- r - 如何在 ggplot2 轴刻度标签中添加上标逗号和空格?
- python - 遍历列表中的列表并仅输出最后一个值
- html - 我在使用 CSS flex-box 和 CSS grid 布局页面时遇到问题
- c++ - 即使没有调用这个递归函数,它是如何工作的?
- android - 在 Android 中将变量传递给 Kotlin 协程
- vue.js - 使用 Vuex 商店配置 web-worker
- reactjs - React Hooks - Axios Uncaught (in promise) 错误:网络错误
- python - 模块“Tensorflow”没有属性
- reactjs - ReactJS - 禁用特定按钮
- javascript - 如何过滤具有特定键的数组反应原生