问题描述
在使用Jenkins构建时遇到了问题,他想知道为什么构建失败,并且想知道如何编写一个Jenkins文件来测试这个简单项目的构建。
以下是他提供的相关代码:
#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv ){
if ( argc != 2 )
{
printf("usage: DisplayImage.out <Image_Path>\n");
return -1;
}
Mat image;
image = imread( argv[1], 1 );
if ( !image.data )
{
printf("No image data \n");
return -1;
}
namedWindow("Display Image", WINDOW_AUTOSIZE );
imshow("Display Image", image);
waitKey(0);
return 0;
}
cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED )
add_executable( DisplayImage DisplayImage.cpp )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )
pipeline {
agent any
stages {
stage('build') {
steps {
cmakeBuild
installation: 'InSearchPath'
}
}
}
}
Jenkins输出:
WorkflowScript: 6: Expected a step @ line 6, column 17.
cmakeBuild
^
WorkflowScript: 7: Expected a step @ line 7, column 31.
installation: 'InSearchPath'
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
根据用户提供的Jenkinsfile,构建失败的原因可能是两个问题:
1. 没有正确安装CMake插件。
2. 在Jenkinsfile中的cmakeBuild语句缺少括号。
以下是解决方案的步骤:
1. 确保已正确安装CMake插件。可以在Jenkins的插件管理页面中搜索并安装CMake插件。
2. 在Jenkinsfile中的cmakeBuild语句周围添加括号。修改后的Jenkinsfile如下所示:
pipeline {
agent any
stages {
stage('build') {
steps {
cmakeBuild(
installation: 'InSearchPath'
)
}
}
}
}
请注意,这里的修改是在cmakeBuild语句周围添加了括号。
方案2
如果方案1中的修改仍然无法解决问题,可以尝试使用其他构建步骤来替代cmakeBuild步骤。以下是一个示例:
pipeline {
agent any
stages {
stage('build') {
steps {
sh 'cmake .'
sh 'make'
}
}
}
}
在这个示例中,我们使用了两个shell步骤来执行cmake和make命令来构建项目。请确保在Jenkins节点上已经安装了CMake和make工具。
请根据你的具体需求选择适合的解决方案。
以上是关于如何解决Minimal CMake Jenkinsfile构建失败的方案。希望对你有帮助!
正文完