Php 如何使用Maven for Sonar设置pom.xml来处理某些目录?
我有这样的目录结构:Php 如何使用Maven for Sonar设置pom.xml来处理某些目录?,php,maven,pom.xml,sonarqube,Php,Maven,Pom.xml,Sonarqube,我有这样的目录结构: 基地 subdir1 次曲面2 细分3 次亚基1 子目录2 子项4 单元测试 如何设置pom.xml,使其只处理粗体的文件夹?如果可能的话,我希望它们都在一个mvn sonar:sonar调用中处理,并在sonar中显示为单独的项目。我试着查看项目对象模型的文档,但我发现文档太多了,无法按照我所描述的那样设置它。这就是位于base中的my pom.xml当前的外观: <project xmlns="http://maven.apache.org/POM/4
- 基地
- subdir1
- 次曲面2
- 细分3
- 次亚基1
- 子目录2
- 子项4
- 单元测试
mvn sonar:sonar
调用中处理,并在sonar中显示为单独的项目。我试着查看项目对象模型的文档,但我发现文档太多了,无法按照我所描述的那样设置它。这就是位于base中的my pom.xml当前的外观:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.foo.bar.baz</groupId>
<artifactId>subsubdir2</artifactId>
<name>MyProject</name>
<version>1.0</version>
<build>
<sourceDirectory>subdir3/subsubdir2</sourceDirectory>
<testSourceDirectory>unittests</testSourceDirectory>
</build>
<properties>
<sonar.language>php</sonar.language>
<sonar.phase>generate-sources</sonar.phase>
</properties>
</project>
4.0.0
com.foo.bar.baz
次级2
我的项目
1
子目录3/子目录2
单元测试
php
生成源
您可以构建顶级pom,并使用设置要构建的模块列表。这不会在sonar的顶层将每个模块显示为一个单独的项目,但如果您进入该项目并选择“模块”,那么您将看到列出的每个模块,就像它是一个单独的项目一样。我不确定我做错了什么,但它不起作用。我将pom.xml移出base,将sourceDirectory设置为base
,testSourceDirectory设置为base/unittests
,并将其添加到属性中:base,base/subdir1,base/subdir3/subsubdir2,base/subdir4
,它显示:嵌入错误:picolifectycleexception:method'public void org.sonar.batch.index.DefaultIndex.start(),实例“org.sonar.batch.index”。DefaultIndex@15004dd,java.lang.RuntimeException:wrapper无法从Maven模块列表中找到根项目。在Maven项目中,每个模块,包括顶级模块(示例中的基本模块)都需要包含pom.xml。有吗?作为要包含或排除的“模块”,您给sonar的值应该是该模块的artifactId,而不是它所在目录的名称。请您给出一个示例,说明base中的pom.xml以及其中一个模块中的pom.xml应该是什么样子的?谢谢如果使用git,可以克隆我的测试床repo:git克隆git://github.com/zzantozz/testbed.git tmp
。这是一个多模块Java项目。需要注意的主要问题是,根级别的pom有一个名为“modules”的部分,它命名了pom下的所有模块。这使得当你构建根pom时,所有的模块都会被构建。@Aistina:你也可以阅读Maven中的和。