【问题标题】:How to set multiple source locations in Sonar Server?如何在 Sonar Server 中设置多个源位置?
【发布时间】:2012-12-14 21:58:26
【问题描述】:

我正在使用 Maven 3,在我的 java 项目中,pom 文件包含一个源位置,如下所示。

<build>
        <sourceDirectory>src/main/java</sourceDirectory>
        <testSourceDirectory>src/test/java</testSourceDirectory>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>${JDK}</source>
                    <target>${JDK}</target>
                    <excludes>
                        <!--<exclude>**/**/api/notification/**/INotificationProfileManager.java</exclude> -->
                    </excludes>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-ejb-plugin</artifactId>
                <configuration>
                    <version>1.3</version>
                    <archive>
                        <manifest>
                            <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
                            <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                        </manifest>
                        <manifestEntries>
                            <Class-Path>./MubarsherTradeClasspath-1.0.jar</Class-Path>
                            <Specification-Vendor>Mubasher</Specification-Vendor>
                            <Implementation-Vendor>Mubasher</Implementation-Vendor>
                            <Sealed>false</Sealed>
                        </manifestEntries>
                    </archive>
                </configuration>
            </plugin>

编译后生成的文件位于.../generate/src/main/java/...路径下。当 Sonar 分析完成时,它会检查这些生成的类本身具有../src/main/java/... 路径,因此分析失败。

所以我需要知道如何定义多个源路径以从声纳进行分析?

【问题讨论】:

  • 能否提供声纳错误堆栈跟踪?

标签: maven jenkins hudson sonarqube


【解决方案1】:

您可以使用属性 sonar.sources 指定来源,并使用逗号分隔值添加不同的路径,如下所示:

sonar.sources  = aap1/src/main/java,aap2,src/main/java

【讨论】:

    【解决方案2】:

    你可以使用 sonar-runner 来做到这一点。这个比较有用。

    您可以声明两个模块。一个按源目录。然后你必须通过声明一个属性文件来配置执行。

    这个文件应该是这样的

    sonar.projectKey=myproject
    sonar.projectName=myprojectname
    sonar.projectVersion=version
    sonar.sourceEncoding=UTF-8
    
    
    sonar.modules=normalsource-module, generated-module
    
    
    normalsource-module.sonar.projectName=Normal Sources Module
    normalsource-module.sonar.language=java
    normalsource-module.sonar.sources=src/main/java
    normalsource-module.sonar.binaries=target/classes
    normalsource-module.sonar.projectBaseDir=.
    
    
    generated-module.sonar.projectName=Generated Sources Module (Java)
    generated-module.sonar.language=java
    generated-module.sonar.sources=src/main/java
    generated-module.sonar.binaries=target/classes
    generated-module.sonar.projectBaseDir=.
    

    希望这会有所帮助,

    问候

    【讨论】:

    • 如果您尝试分析包含 50 多个模块的项目,这不是一个好方法。是否有任何通用方法可以在 Maven 多模块项目中添加源文件夹?我想继续使用 maven-scanner 而不是 sonar-scanner。
    • 对此有何改进?我有同样的问题
    猜你喜欢
    • 1970-01-01
    • 2012-01-19
    • 2016-03-14
    • 1970-01-01
    • 2011-06-24
    • 2014-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多