Sonar在错误的maven存储库中查找工件

时间:2012-05-31 09:13:00

标签: maven hudson jenkins sonarqube

我有一台在主机上运行Maven的Jenkins工作

我添加了一个构建后步骤来运行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. 我已在settings.xml中为MAVEN_HOME/conf配置了所需的详细信息。

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:2)

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

所以我用mvn clean install -DskipTests=true运行了maven,后来使用了Sonar post build步骤。