【问题标题】:Sonar looks for artifacts in wrong maven repositorySonar 在错误的 Maven 存储库中查找工件
【发布时间】:2012-06-05 12:48:18
【问题描述】:

我有一份 Jenkins 工作,在主机上运行 Maven

我添加了一个后期构建步骤来运行 Sonar,并将其指向项目的 pom.xml

问题是 Jenkins 构建运行在 master 上,而 Sonar 服务器运行在不同的机器上。因此,当构建完成时,Sonar 会在安装它的存储库中查找构建工件,而不是 Jenkins 运行 Maven 的主机。

除了在同一台机器上安装 Sonar 和 Jenkins 之外,还有其他解决方法吗?

更多详情:

[ERROR] Failed to execute goal on project server-api: Could not resolve dependencies for project frm:frm-server-api:jar:1.0-SNAPSHOT: Failure to find frm:frm-model:jar:1.0-SNAPSHOT in http://DIFFERENT_SERVER:7080/nexus/content/repositories/releases/ was cached in the local repository, resolution will not be reattempted until the update interval of releases has elapsed or updates are forced -> [Help 1]

DIFFERENT_SERVER 是与sonar 服务器或Jenkins 服务器无关的服务器,我们正在使用它,但不在这个项目的上下文中,所以我真的不知道它是如何到达那里的。我猜这是配置错误。更多细节:

  1. Jenkins 作业类型是一个通用项目,而不是纯粹的 maven 作业。
  2. 我正在使用 sonar jenkins 插件作为构建后触发器并指定我正在使用的 pom.xml
  3. 我在MAVEN_HOME/conf 中配置了settings.xml 所需的详细信息。

【问题讨论】:

  • 声纳服务器不查找工件,sonar:sonar maven 任务会。声纳服务器只是保存结果。
  • @oers 和 sonar:sonar maven 任务在 Jenkins 服务器上运行还是在 Sonar 上运行?
  • 它在你的 jenkins 服务器上本地运行

标签: maven hudson jenkins sonarqube


【解决方案1】:

Sonar 服务器在不同的机器上运行这一事实绝对不是启动分析的问题,并且您应该从您的 Jenkins 主机运行 Sonar 分析没有任何问题,可能是 Sonar DB 和/或 Sonar服务器在不同的机器上。

您只需确保 Jenkins 上的配置(= Sonar 属性)+ 您的机器配置(= 潜在防火墙)允许 Sonar 批处理:

  1. 查询 Sonar Web 服务器 URL
  2. 查询配置的数据库

【讨论】:

  • 谢谢,我猜这一定是配置错误,我在我的问题中添加了更多信息
  • 我已经向settings.xml 添加了必要的配置文件,我还需要向我的pom.xml 添加任何内容吗?似乎它不需要我添加到设置文件中的sonar 配置
【解决方案2】:

我的问题是我没有在我的项目的 pom.xml 中添加任何内容,而且我一直在使用 maven 到 package 阶段,Sonar 也需要 install maven 存储库中的工件,所以它可以以后再用。

所以我使用mvn clean install -DskipTests=true 运行 maven,然后使用了 Sonar 后期构建步骤。

【讨论】:

    猜你喜欢
    • 2016-06-23
    • 2019-10-11
    • 2019-10-04
    • 2012-01-10
    • 1970-01-01
    • 2014-08-10
    • 2016-01-22
    • 2011-04-17
    • 1970-01-01
    相关资源
    最近更新 更多