Sonar 3.7 XML Profile XHTML验证失败

时间:2013-12-03 15:09:36

标签: tomcat proxy jenkins xhtml sonarqube

我正在尝试将Sonar Web和XML质量配置文件分析添加到我的稳定的Java配置文件分析套件中。 Sonar XML质量配置文件分析无法完成XHTML验证。我怀疑问题是由于代理问题,验证引擎无法通过互联网访问XML架构。

错误:

[INFO] [11:48:07.587] Sensor XmlSourceImporter...
[INFO] [11:48:23.354] Sensor XmlSourceImporter done: 15767 ms
[INFO] [11:48:23.354] Sensor XmlSensor...
[INFO] [11:48:23.557] Validate Exit.xhtml with schema xhtml1-transitional
[ERROR] [11:48:44.542] Could not analyze the file D:\Jenkins_home\.jenkins\jobs\...\Exit.xhtml
org.sonar.api.utils.SonarException: java.net.ConnectException: Connection timed out: connect
    at org.sonar.plugins.xml.checks.XmlSchemaCheck.validate(XmlSchemaCheck.java:248) ~[na:na]
    at org.sonar.plugins.xml.checks.XmlSchemaCheck.validate(XmlSchemaCheck.java:227) ~[na:na]
    at org.sonar.plugins.xml.checks.XmlSchemaCheck.validate(XmlSchemaCheck.java:259) ~[na:na]
    at org.sonar.plugins.xml.XmlSensor.analyse(XmlSensor.java:69) ~[na:na]
    at org.sonar.batch.phases.SensorsExecutor.execute(SensorsExecutor.java:72) [sonar-batch-3.7.1.jar:na]

配置:

  • 在Windows Server 2003上将Tomkins 7.0.11与Jenkins 1.509.3和Sonar 3.7.1安装到Tomcat中。
  • 插件版本:Sonar XML版本1.0,Jenkins Sonar版本2.1,Jenkins Subversion 1.50。
  • Jenkins Maven 2.2.1触发声纳分析的工作。
  • 使用代理服务器(公司配置)保护所有网络访问。
  • 在conf / sonar.properties中使用代理服务器属性配置Sonar(证明:能够访问Sonar更新中心 - 如果Tomcat代理交换机配置为允许每个下面的代理访问)。
  • 配置了空-Dhttp.proxyHost和-Dhttp.proxyPort的Tomcat Java进程切换以禁止从Windows传递的代理设置。这是必需的,因此代理信息没有传递给Jenkins(如果从Tomcat传递代理交换机,Jenkins Subversion访问失败)。

我认为我需要Tomcat来抑制代理设置,因此Jenkins Subversion访问可以正常工作,但需要Tomcat代理设置才能使用Sonar XML分析。也许我需要放弃Tomcat,转而支持Jenkins和Sonar的独立安装?

我的代理设置分析是否正确和/或是否有其他Sonar配置我可以尝试让XHTML验证工作?

1 个答案:

答案 0 :(得分:1)

我通过配置Jenkins使用的Maven安装来使用代理连接到网络来解决了这个问题。参考:http://maven.apache.org/guides/mini/guide-proxies.html。在Maven代理配置中,我在*.<corporate-domain-root>.*中添加了内部网URI(<nonProxyHosts>)。

conf / sonar.properties 中的Sonar代理服务器属性不是必需的。

现在,Jenkins和Sonar是通过Tomcat启动的,没有代理设置(即空-Dhttp.proxyHost-Dhttp.proxyPort开关)。当Jenkins作业通过Maven触发Sonar分析时,Maven能够在进行XML模式验证检查时通过代理配置调用Internet。