我刚刚结束了与Jenkins的GitHub集成,因此每次我将代码提交到GitHub存储库时,Jenkins都会自动构建。 现在,我也尝试集成SonarCloud,但没有成功。 我不想与本地SonarQube服务器集成,我真的需要SonarCloud供我的团队在每次Jenkins构建时对其进行检查。
我不确定是否应该在本地分析项目以实现此目标,或者我是否可以分析我的Jenkins服务器或GitHub存储库并获得所需的结果,因为我找不到任何文档。
有人能指出我正确的方向吗?
谢谢!
答案 0 :(得分:1)
Sonarcloud只是一个声纳服务器。
只需使用sonar-scanner(jenkins的文档可以在here中找到。
首先,您需要安装jenkins plugin for sonar-scanner。
然后,您使用var svg = d3.select("body")
.append("svg")
.attr("width", 500)
.attr("height", 200);
var g = svg.append('g')
.attr('class', 'resize-me');
var rect = g.append('rect')
.attr('stroke', 'blue')
.attr('x', 0)
.attr('y', 0)
.attr("width", 200)
.attr("height", 200)
.attr('stroke-width', 2)
.attr('stroke', 'white')
.attr('fill', 'grey');
var image = g.append('image')
.attr('x', 0)
.attr('y', 0)
.attr('width', 128)
.attr('height', 128)
.attr("xlink:href", imageUrl);
interact('.resize-me')
.resizable({
edges: { left: true, right: true, bottom: true, top: true }
})
.on('resizemove', function(event) {
var target = event.target;
var rect = target.childNodes[0];
var img = target.childNodes[1];
var x = (parseFloat(target.getAttribute('endx')) || 0)
var y = (parseFloat(target.getAttribute('endy')) || 0)
rect.setAttribute('width', event.rect.width);
rect.setAttribute('height', event.rect.height);
x += event.deltaRect.left
y += event.deltaRect.top
rect.setAttribute('transform', 'translate(' + x + ', ' + y + ')')
rect.setAttribute('endx', x)
rect.setAttribute('endy', y)
// clip image
svg.append('defs')
.append('clipPath')
.attr('id', 'clip2')
.append('rect')
.attr('x', 0)
.attr('y', 0)
.attr('width', event.rect.width)
.attr('height', event.rect.height);
image.attr("clip-path", "url(#clip2)");
});
打开声纳扫描仪的配置。
在Manage Jenkins > Configure System
下插入https://sonarcloud.io
,在Server URL
下插入您的声纳令牌(声纳)
在Server authentication token
下,您应检查Manage Jenkins > Configure System
,在工作中的Enable injection of SonarQube server configuration as build environment variables
中,应启用Build Environment
。
完成此操作后,可以使用Prepare SonarScanner environment
(如果使用maven),$SONAR_MAVEN_GOAL
(如果使用gradle)或./gradlew sonarqube
(如果您什么都不用。