gpt4 book ai didi

delphi - 使用 Ant 配置 Sonar 模块的 build.xml 文件

转载 作者:行者123 更新时间:2023-12-03 01:00:40 25 4
gpt4 key购买 nike

我正在设置一个 Sonar 项目(使用 delphi 插件),为简单起见,假设我想要报告两个模块。

每个模块都位于其自己的子文件夹中,并且每个模块都有自己的 build.xml 文件。

此时,我可以成功运行 Sonar 任务并为每个模块作为独立项目生成报告。

我的问题是配置“master”build.xml 文件。

模块 build.xml 文件如下所示:

<?xml version="1.0"?>
<project name = "CRM" default = "sonar" basedir = ".">
<!-- Add the Sonar task -->
<taskdef uri="antlib:org.sonar.ant" resource="org/sonar/ant/antlib.xml">
<classpath path="c:/ANT/lib" />
</taskdef>

<target name="sonar">
<property name="sonar.projectKey" value="EXO:CRM" />
<property name="sonar.host.url" value="http://localhost:9000" />
<sonar:sonar workDir="." key="CRM.key" version="0.1" xmlns:sonar="antlib:org.sonar.ant">
<property key="sonar.sources" value="." /> <!-- project sources directories (required) -->
<property key="sonar.language" value="delph" /> <!-- project language -->
<property key="sonar.delphi.codecoverage.excluded" value=".\tests" /> <!-- code coverage excluded directories -->
<property key="sonar.importSources" value="true" /> <!-- should we show sources or not? -->
<property key="sonar.delphi.sources.excluded" value="" /> <!-- excluded directories -->
<property key="sonar.delphi.sources.include" value=".\includes" /> <!-- include directories, "," separated -->
<property key="sonar.delphi.sources.include.extend" value="true" /> <!-- should we extend includes in files? -->
</sonar:sonar>
</target>
</project>

“Master”build.xml 如下所示:

<?xml version="1.0"?>
<project name = "EXO" default = "sonar" basedir = ".">
<taskdef uri="antlib:org.sonar.ant" resource="org/sonar/ant/antlib.xml">
<classpath path="c:/ANT/lib" />
</taskdef>

<target name="sonar">
<property name="sonar.modules" value="exonet6000/build.xml,CRM/build.xml" />
<sonar:sonar workDir="." key="EXO.key" version="0.1" xmlns:sonar="antlib:org.sonar.ant">
<!-- project sources directories (required) -->
<property key="sonar.sources" value="." />
<property key="sonar.language" value="delph" />
<property key="sonar.importSources" value="true" />
<property key="sonar.delphi.sources.excluded" value="" />
<property key="sonar.delphi.sources.include" value=".\includes" />
<property key="sonar.delphi.sources.include.extend" value="true" />
</sonar:sonar>
</target>
</project>

它总是扫描所有源(所需值),即它不尊重我的模块。目前我可以让它工作的唯一方法是像这样限制源代码

<property key="sonar.sources" value="./crm/,./exonet6000/" />   

我确信我一定是错误配置了一些明显的东西。

编辑:我现在有了我认为基于此处示例的更一致的文件集 https://github.com/SonarSource/sonar-examples/tree/master/projects/languages/java/java-ant-modules

主构建文件:

<?xml version="1.0" encoding="UTF-8"?>
<project name = "EXO" default = "sonar" basedir = "." xmlns:sonar="antlib:org.sonar.ant">
<echo>Root Project</echo>

<taskdef uri="antlib:org.sonar.ant" resource="org/sonar/ant/antlib.xml">
<classpath path="c:/ANT/lib" />
</taskdef>

<property name="sonar.host.url" value="http://localhost:9000" />
<property name="sonar.modules" value="exonet6000/build.xml,CRM/build.xml" />

<target name="sonar">
<sonar:sonar key="EXO.key" version="0.1">
</sonar:sonar>
</target>
</project>

以及子模块文件之一

<?xml version="1.0" encoding="UTF-8"?>
<project name="CRM" default="all" basedir=".">
<echo>CRM Module</echo>

<property name="sonar.language" value="delph" />
<property name="sonar.projectKey" value="EXO:CRM" />
<property name="sonar.sources" value="." />

<target name="all" />
</project>

此时 Sonar 过程已成功完成,但尚未进行实际分析。关键是我没有看到子模块的回声,因此我怀疑这些构建任务实际上并未运行。

最佳答案

如果你看this sample project using Ant and multimodules ,我想说的是,您不应该在主 build.xml 文件的标记内指定任何属性,并让子模块指定这些属性。

关于delphi - 使用 Ant 配置 Sonar 模块的 build.xml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11092659/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com