我正在写下面提到的两个依赖的任务,但两个都在应用程序构建时运行。我试图避免,代码就像这样
// Get the coverage from sonar qube server for current branch
task getCoverageReport {
def headers = [Accept: 'application/json']
def resourcesId = getProjectResourceId()
if (resourcesId != null) {
def jsonText = new URL("(sonar instance)/api/resources?metrics=coverage,test_success_density&resource=" + resourcesId)
.getText(requestProperties: headers)
def parsedJson = new JsonSlurper().parseText(jsonText)
if (null != parsedJson) {
codeCoverage = parsedJson.msr.get(0).get(0).frmt_val
testCoverage = parsedJson.msr.get(0).get(1).frmt_val
}
}
}
confluence {
tasks.findByName("confluence").doFirst {getCoverageReport}
String confluenceUser = XXXXX
String confluencePassword = XXXXXX
authentication new String(confluenceUser + ":" +
confluencePassword).bytes.encodeBase64().toString()
restApiUrl 'some uri'
spaceKey 'XXXX'
sslTrustAll true
pageVariables = ['project.name' : project.name,
'release.version': someversion,
'codeCoverage' : codeCoverage,
'testCoverage' : testCoverage
]
pages {
page {
parentTitle 'page title'
title "title" + project.getProperties().get('version')
srcFile file('some file location')
labels = ['Release Report']
}
}
}
如果发现我正试图在getCoverageReport
任务中先调用confluence
。
问题是这两个任务在应用程序构建时运行,即当我以gradlew build
运行命令时。
我查看了文档,并且在配置阶段运行任务,而不是在执行阶段我应该如何处理它?在执行阶段运行它们。
如果我尝试将getCoverageReport代码放在doFirst子句中,并运行gradlew confluence
那么它就不会运行getCoverageReport
任何帮助都将受到高度赞赏。