【问题标题】:Jenkins API URL clashes with a module named "api"Jenkins API URL 与名为“api”的模块发生冲突
【发布时间】:2012-01-09 02:26:07
【问题描述】:

我有一个使用 Jenkins 设置的 Django 项目。我的一个应用程序的字面名称为api。当我查看此应用程序的覆盖率报告时,我被带到一个带有后缀 /cobertura/api/ 的 URL。由于此 URL 以字符串 api 结尾,Jenkins 将其解释为对 URL /cobertura/ 的 API 访问,而不是覆盖率报告的 api 页面。

我该如何处理?我根本不使用 Jenkins API,所以完全禁用它是一个可以接受的解决方案。

【问题讨论】:

  • 考虑将您的应用重命名为api_
  • 或者api以外的任何东西。
  • 您使用什么应用程序将 Jenkins 支持添加到您的项目中?
  • 我使用django-jenkins。重命名应用程序会产生深远的影响,因此我能想到的最佳解决方案是编写一个脚本,在生成后但在 Jenkins 看到它之前,将 coverage.xml 中的 api 重写为 api_。如果没有更好的结果,我会写下来并作为答案发布。

标签: python django jenkins


【解决方案1】:

我在 Jenkins 构建脚本的末尾添加了以下内容:

cp reports/coverage.xml reports/coverage2.xml
sed 's/ name=\"api\"/ name=\"api_\"/' reports/coverage2.xml > reports/coverage.xml

这会在 Jenkins 处理之前重写覆盖率报告,将 api 名称更改为 api_。由于只有name XML 属性受到影响,filename 不受影响,因此覆盖率报告本身可以正常工作。

【讨论】:

  • 旧线程,但今天在我的 windows jenkins 实例上遇到了这个问题。这是我使用的 powershell 命令,以防它帮助其他人。 powershell -Command "(gc 'coverage.xml') -replace 'name=\"api\"','name=\"api_\"' | Out-File 'test_file.txt' -encoding utf8"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-25
  • 2016-07-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多