1

プロジェクトをマベナイズしようとしています。コード ベースが膨張し始めており、複数のモジュールに分割する必要があります。ただし、私たちはすでにある程度独自の展開プロセスを実施しており、Maven の方法を優先してディレクトリ構造を妥協することはできません。

単純化された構造は次のとおりです。

  /workspace/basesrc/
                    |_ superpom.xml
                    |_ com/company/parentpkg/
                                          |_ ModuleA/
                                                    |_ pom.xml
                                                    |_SubAModuleA/
                                                                 |_ SubAModuleAClass.java
                                                                 |_ pom.xml
                                                    |_SubAModuleB/
                                                                 |_ SubAModuleBClass.java
                                                                 |_ pom.xml
                                          |_ ModuleB/
                                                    |_ ModuleBClass.java
                                                    |_ pom.xml

次のセットアップを使用してプロジェクトをビルドできました。

アプローチA

(superpom.xml):

<build>
  <sourceDirectory>.</sourceDirectory>
</build>

これはサブモジュールによって継承され、実際には現在のディレクトリのみを構築します。

ただし、このスレッドに記載されているように、Sonar はパッケージ名の解決に問題があるようです: mvn sonar:sonar throws exception while doing Java AST scan

アプローチ B : ここで説明されているように、ルート ソース ディレクトリを指定し、maven コンパイラ インクルードを使用します: http://maven.apache.org/guides/mini/guide-using-one-source-directory.html

(superpom.xml)

<build>
  <sourceDirectory>/workspace/basesrc/</sourceDirectory>
</build>

(SubAModuleA pom.xml)

<build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <includes><include>com/company/parentpkg/ModuleA/SubAModuleA/**/*.java</include></includes>
        </configuration>
      </plugin>
    </plugins>
  </build>

繰り返しますが、これは maven ビルドの場合に機能します。ただし、サブモジュールディレクトリから実行しているにもかかわらず、Sonar には/workspace/basesrc/フォルダー全体が含まれているようです。mvn sonar:sonar

だから私の質問は、

アプローチ A を使用する場合、Sonar Maven プラグインが Java ソース ファイルを検索するルート ディレクトリ プロパティを構成/オーバーライドする方法はありますか? ${project.build.sourceDirectory} maven プロパティとは異なる可能性がありますか?

アプローチ B を使用して、maven-compiler-plugin によってビルドされているもののみを分析するように Sonar を構成するにはどうすればよいですか?

4

2 に答える 2

1

興味のある方は、繰り返しますが、下ではなく下に<sonar.includes>配置する必要があります。また、ソナーはバージョン 3.5 以上である必要があります。<properties><configuration><plugin>

于 2013-07-16T14:19:08.843 に答える