Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用Maven for Sonar设置pom.xml来处理某些目录?_Php_Maven_Pom.xml_Sonarqube - Fatal编程技术网

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
    • 单元测试
如何设置pom.xml,使其只处理粗体的文件夹?如果可能的话,我希望它们都在一个
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中的和。