1.修改本地maven的setting.xml文件
<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.host.url>http://ip:9000</sonar.host.url>
</properties>
</profile>
2.主程序pom中添加依赖
<build>
<plugins>
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.8.0.2131</version>
</plugin>
</plugins>
</build>
3.在管理页配置
①添加项目
将上面的复制到你的项目执行即可
附加:
jenkins创建一个流水线并构建
流水線代碼如下
pipeline {
agent any
tools {
maven 'Maven3'
}
environment {
NAME = 'IFTP'
SONARQUBE_ENV = 'SonarLocal'
JAVA_HOME = '/usr/local/jdk-21.0.7'
PATH = "${JAVA_HOME}/bin:${env.PATH}"
}
stages {
stage('Clone Source Code') {
steps {
git url: '带有账号密码的项目gitlab地址',
branch: 'dev-upgrade'
}
}
stage('SonarQube Analysis') {
steps {
configFileProvider([configFile(fileId: 'c9d95f44-03fe-4f08-a4f4-e8fe381164e9', variable: 'MAVEN_SETTINGS')]) {
withSonarQubeEnv("${SONARQUBE_ENV}") {
sh '''
echo "JAVA_HOME=$JAVA_HOME"
which java
ls -l $JAVA_HOME/bin/java
java -version
mvn clean install -U
mvn --settings $MAVEN_SETTINGS -U sonar:sonar \
-Dsonar.projectKey=${NAME} \
-Dsonar.projectName=${NAME} \
-DskipTests \
-Dmaven.test.skip=true
'''
}
}
}
}
stage('Quality Gate') {
steps {
timeout(time: 1, unit: 'MINUTES') {
waitForQualityGate abortPipeline: true
}
}
}
stage('Archive PDF Report') {
steps {
sh '''
cp /var/jenkins_home/workspace/MTS/target/sonar/${NAME}.pdf .
'''
archiveArtifacts artifacts: "${NAME}.pdf", onlyIfSuccessful: true
}
}
}
}