10

私は Maven 3 を使用しており、私の Java プロジェクトでは、pom ファイルには次の 1 つのソースの場所が含まれています。

<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/...パスに配置されます。ソナー分析が完了すると、それ自体が../src/main/java/...パスを持つこれらの生成されたクラスがチェックされるため、分析は失敗します。

ソナーから分析する複数のソースパスを定義する方法を知る必要がありますか?

4

2 に答える 2

11

sonar-runner を使用してそれを行うことができます。これはより便利です。

2 つのモジュールを宣言できます。ソース ディレクトリごとに 1 つ。次に、プロパティ ファイルを宣言して実行を構成する必要があります。

このファイルは次のようになります

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=.

お役に立てれば、

よろしく

于 2013-07-18T13:28:02.167 に答える