Sonarqube插件不适用于maven构建

时间:2018-06-15 19:00:54

标签: java maven sonarqube sonarqube-scan

我创建了一个基于this example的插件。我添加一些日志来检查是否所有内容都已加载。 当我启动SonarQube服务器时,将加载主类并加载所有规则:

  

加载插件:org.sonar.samples.java.MyJavaRulesPlugin添加规则:   org.sonar.samples.java.checks.SpringControllerRequestMappingEntityRule   添加规则:org.sonar.samples.java.checks.AvoidAnnotationRule添加   规则:org.sonar.samples.java.checks.AvoidBrandInMethodNamesRule添加   规则:org.sonar.samples.java.checks.AvoidMethodDeclarationRule添加   规则:org.sonar.samples.java.checks.AvoidSuperClassRule添加规则:   org.sonar.samples.java.checks.AvoidUnmodifiableListRule添加规则:   org.sonar.samples.java.checks.MyCustomSubscriptionRule添加规则:   org.sonar.samples.java.checks.SecurityAnnotationMandatoryRule

但是当我执行本地maven构建点到我的服务器时:mvn sonar:sonar只加载了插件。

  

加载插件:org.sonar.samples.java.MyJavaRulesPlugin

这是我的Dockerfile来构建我的服务器:

FROM openjdk:8-alpine

ENV SONAR_VERSION=7.1 \
    SONARQUBE_HOME=/opt/sonarqube \
    # Database configuration
    # Defaults to using H2
    SONARQUBE_JDBC_USERNAME=sonar \
    SONARQUBE_JDBC_PASSWORD=sonar \
    SONARQUBE_JDBC_URL=

# Http port
EXPOSE 9000

RUN addgroup -S sonarqube && adduser -S -G sonarqube sonarqube

RUN set -x \
    && apk add --no-cache gnupg unzip \
    && apk add --no-cache libressl wget \
    && apk add --no-cache su-exec \
    && apk add --no-cache bash \

    # pub   2048R/D26468DE 2015-05-25
    #       Key fingerprint = F118 2E81 C792 9289 21DB  CAB4 CFCA 4A29 D264 68DE
    # uid                  sonarsource_deployer (Sonarsource Deployer) <infra@sonarsource.com>
    # sub   2048R/06855C1D 2015-05-25
    && gpg --keyserver ha.pool.sks-keyservers.net --recv-keys F1182E81C792928921DBCAB4CFCA4A29D26468DE \

    && mkdir /opt \
    && cd /opt \
    && wget -O sonarqube.zip --no-verbose https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-$SONAR_VERSION.zip \
    && wget -O sonarqube.zip.asc --no-verbose https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-$SONAR_VERSION.zip.asc \
    && gpg --batch --verify sonarqube.zip.asc sonarqube.zip \
    && unzip sonarqube.zip \
    && mv sonarqube-$SONAR_VERSION sonarqube \
    && chown -R sonarqube:sonarqube sonarqube \
    && rm sonarqube.zip* \
    && rm -rf $SONARQUBE_HOME/bin/*

ADD target/java-custom-rules-1.0-SNAPSHOT.jar      $SONARQUBE_HOME/extensions/plugins/

VOLUME "$SONARQUBE_HOME/data"

WORKDIR $SONARQUBE_HOME
COPY run.sh $SONARQUBE_HOME/bin/
ENTRYPOINT ["./bin/run.sh"]

如何让我的插件在maven build上验证我的代码?

1 个答案:

答案 0 :(得分:0)

您必须在绑定到项目的质量配置文件中激活规则。您可以通过以下两种方式启用它们(在SonarQube 7.1上测试):

  1. 查找规则并激活它们:
    • 打开规则标签
    • 搜索您要启用的规则
    • 打开规则
    • 点击质量配置文件
    • 旁边的Activate按钮
    • 选择应添加规则的质量配置文件
  2. steps

    1. 查找质量配置文件并激活规则:
      • 打开质量配置文件标签
      • 选择应添加规则的质量配置文件
      • 点击总非活动规则
      • 激活规则(您还可以使用Search for rules...字段来过滤结果)
    2. steps

      详细了解SonarQube wiki上的质量档案。