Ada gpr文件中Project_版本的外部配置

Ada gpr文件中Project_版本的外部配置,ada,gprbuild,Ada,Gprbuild,使用gnatpro19.1,我试图将gnathub添加到我的项目中,我想知道如何动态设置project\u版本,如下所示: package Dashboard is for Project_Version use @git --describe --tags@; -- this needs to be updated. end Dashboard; 我想不出任何简单的方法来做这件事 一个解决方案是使用一个Makefile,在文件中配置一个.gpr.in,但它似乎故意改变我的整个构建链,只

使用gnatpro19.1,我试图将gnathub添加到我的项目中,我想知道如何动态设置
project\u版本
,如下所示:

package Dashboard is
   for Project_Version use @git --describe --tags@; -- this needs to be updated.
end Dashboard;
我想不出任何简单的方法来做这件事

一个解决方案是使用一个Makefile,在文件中配置一个
.gpr.in,但它似乎故意改变我的整个构建链,只是为了向sonar配置添加一个版本

一个简单而非自动化的解决方案是使用另一个交换机调用项目:

gnathub -P Foo.gpr --plugins sonar-config,sonar-scanner\
 --targs:sonar-scanner -Dsonar.projectVersion=$(git describe --tags)
但这并不是真正有用的

类似的问题是添加选项
-Dsonar.branch.name=$(git branch)
。AFAICT,
程序包仪表板
,因为没有
开关
开关


除了传递额外的参数或分叉gnatdashboard之外,还有其他解决方案吗?

最好的解决方案似乎在于使用Make之类的工具自动化此配置

例如,可以定义以下Makefile:

#此目标运行列出的所有插件
#在项目gpr的Dashboard.plugins部分
#声纳配置和声纳扫描仪不应在其中列出。
分析:
gnathub-P项目
#这使用gnathub API获取将在其中生成sonar配置文件的对象目录
OBJECT_DIR=$(shell gnathub-P项目--exec OBJECT_DIR.py 2>/dev/null | tail-n1)
SONAR_属性=$(OBJECT_DIR)/gnathub/SONAR/SONAR-project.PROPERTIES
PROJECT_VERSION=$(shell git descripe--tags)
分支名称=$(shell git rev parse--abbrev ref HEAD)
#使用gnathub生成声纳属性文件。
#替换projectVersion并添加分支名称
#(注意,在sonar上,分支名称不应在“主”分支上指定)
$(声纳_属性):分析
gnathub-P项目——插件声纳配置——增量
@sed-i“s/\(sonar.projectVersion=\)./\1$(PROJECT\u版本)/”$@
ifneq($(分支机构名称),主)
@echo“sonar.branch.name=$(分支机构名称)”>>$@
恩迪夫
声纳:$(声纳属性)
gnathub-P项目——插件声纳扫描仪——增量
.假的:声纳分析
其中
object_dir.py
是:

#/usr/bin/env python
进口啮齿动物;
打印(GNAThub.Project.object_dir());
然后:


将运行分析并使用正确的版本和分支名称(如有必要)将其更新到SonarQube服务器。

最好的解决方案似乎在于使用Make之类的工具自动化此配置

例如,可以定义以下Makefile:

#此目标运行列出的所有插件
#在项目gpr的Dashboard.plugins部分
#声纳配置和声纳扫描仪不应在其中列出。
分析:
gnathub-P项目
#这使用gnathub API获取将在其中生成sonar配置文件的对象目录
OBJECT_DIR=$(shell gnathub-P项目--exec OBJECT_DIR.py 2>/dev/null | tail-n1)
SONAR_属性=$(OBJECT_DIR)/gnathub/SONAR/SONAR-project.PROPERTIES
PROJECT_VERSION=$(shell git descripe--tags)
分支名称=$(shell git rev parse--abbrev ref HEAD)
#使用gnathub生成声纳属性文件。
#替换projectVersion并添加分支名称
#(注意,在sonar上,分支名称不应在“主”分支上指定)
$(声纳_属性):分析
gnathub-P项目——插件声纳配置——增量
@sed-i“s/\(sonar.projectVersion=\)./\1$(PROJECT\u版本)/”$@
ifneq($(分支机构名称),主)
@echo“sonar.branch.name=$(分支机构名称)”>>$@
恩迪夫
声纳:$(声纳属性)
gnathub-P项目——插件声纳扫描仪——增量
.假的:声纳分析
其中
object_dir.py
是:

#/usr/bin/env python
进口啮齿动物;
打印(GNAThub.Project.object_dir());
然后:


将运行分析并使用正确的版本和分支名称(如有必要)将其更新到SonarQube服务器。

gnathub?啃板?您是否有可能成为受支持的客户?如果是这样的话,最好使用AdaCore提供的(优秀的输入法)支持,我会就此话题与AdaCore联系。根据AdaCore的建议,使用Makefile之类的构建工具是推荐的解决方案。我可以开始提问吗?关闭它,将此评论作为答案发布?我会将此评论作为答案发布(可能稍微扩展以提示如何使用Makefile)gnathub?啃板?您是否有可能成为受支持的客户?如果是这样的话,最好使用AdaCore提供的(优秀的输入法)支持,我会就此话题与AdaCore联系。根据AdaCore的建议,使用Makefile之类的构建工具是推荐的解决方案。我可以开始提问吗?关闭它,将此评论作为答案发布?我会将此评论作为答案发布(可能稍微扩展以提示如何使用Makefile)
$make sonar