小编R.V*_*R.V的帖子

在管道中传递 MAVEN_OPTS

我正在尝试将自由式作业转换为管道代码。以下是在作业中的“调用 Artifactory Maven 3”下与 maven 目标一起声明的 MAVEN_OPTS。

Maven 目标:全新安装

MAVEN_OPTS:-Xmx2048m

-Xms512m

-XX:PermSize=256m

-XX:MaxPermSize=1024m

-Denv.build-timestamp=${BUILD_TIMESTAMP}

-Denv.build-job=${JOB_NAME}

-Denv.build-number=${BUILD_NUMBER}

-Denv.build-url=${BUILD_URL}

-Denv.git-commit=${GIT_COMMIT}

-Denv.git-branch=${GIT_BRANCH}

我在管道中的试验:

node('node1') {

    def javaHome = tool name: 'JDK 1.8', type: 'hudson.model.JDK'
    def mvnHome = tool name: 'M3', type: 'hudson.tasks.Maven$MavenInstallation'
    sh "$mvnHome/bin/mvn -f pom.xml clean install -U -Dmaven.repo.local=$WORKSPACE/.m2/repository -Xmx2048m -Xms512m -XX:PermSize=256m -XX:MaxPermSize=1024m -Dtimestamp=${BUILD_TIMESTAMP} ..."

    }

Error:
Could not find metadata org.apache.maven.plugins/maven-metadata.xml in local
Run Code Online (Sandbox Code Playgroud)

我确定我以错误的方式传递了 MAVEN_OPTS。有人可以指导我使用正确的 systax 在 Pipeline 中声明 MAVEN_OPTS

maven jenkins jenkins-pipeline

3
推荐指数
2
解决办法
7656
查看次数

无法在 Jenkins 管道内运行 shell 脚本

我能够运行以下 shell 脚本,但无法从 Jenkins 管道代码运行。

尝试 1。

node('buildnode') {

def value = "Myvalue"

def key = "Mykey"

sh '''

DATA=$(printf "%-50s \"$key\"" "$value")

echo "$DATA"

'''

}
Run Code Online (Sandbox Code Playgroud)

输出:

++ printf '%-50s ' ''
+ DATA=' 
Run Code Online (Sandbox Code Playgroud)

尝试2:

试过 sh " " "

DATA=$(printf "%-50s \"$key\"" "$value")

echo "$DATA"

" " "
Run Code Online (Sandbox Code Playgroud)

输出::

美元符号后的非法字符串体字符;解决方案:要么转义文字美元符号,"\$5"要么将值表达式括起来"${5}"

有人能帮我吗?

shell jenkins jenkins-pipeline

2
推荐指数
1
解决办法
2988
查看次数

标签 统计

jenkins ×2

jenkins-pipeline ×2

maven ×1

shell ×1