2012-02-07 56 views
2

我們是Sonar的新用戶,剛剛下載了v2.13.1,並開始使用它並與我們的項目合作。這很好,直到它開始慢慢運行,我意識到這是因爲我們仍然在包括德比運行。我們在同一個盒子上運行MySQL Server 5.1(以及TeamCity CI),所以我按照步驟設置了MySQL。使用MySQL 5.1的Sonar 2.13.1版本

  • 我運行了extras\database\mysql\create_database.sql來創建聲納用戶並分配權限。
  • 我更新conf\sonar.properties包括:

    sonar.jdbc.url:       jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8 
    sonar.jdbc.driverClassName:    com.mysql.jdbc.Driver 
    sonar.jdbc.validationQuery:    select 1 
    
  • 我重新啓動聲納服務器並從該數據庫表中創建日誌看到,我可以通過瀏覽該數據庫獨立證實了這一點。

  • 當我啓動服務器時,我得到的日誌中的以下內容:

    2012.02.07 13:50:58 INFO o.s.c.p.Database Create JDBC datasource 
    2012.02.07 13:51:01 INFO org.sonar.INFO Initializing Hibernate 
    2012.02.07 13:51:11 INFO org.sonar.INFO Start services... 
    
  • 當我運行我們TeamCity的配置,它是「mvn clean install」接着是「mvn sonar:sonar」的目標,這在以前的工作德比下,我們構建成功完成,但聲納以下信息死亡:

    [14:11:24] [west-chai:my-project] [INFO] --- sonar-maven-plugin:2.0:sonar (default-cli) @ my-project --- 
    [14:11:26] [west-chai:my-project] [INFO] Sonar version: 2.13.1 
    [14:11:29] [west-chai:my-project] [WARN] [14:11:29.403] Derby database should be used for evaluation purpose only 
    [14:11:29] [west-chai:my-project] [INFO] [14:11:29.403] Create JDBC datasource 
    [14:11:30] [west-chai:my-project] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.0:sonar (default-cli) on project my-project: Can not execute Sonar 
    [14:11:30] [INFO] ------------------------------------------------------------------------ 
    [14:11:30] [INFO] Reactor Summary: 
    [14:11:30] [INFO] 
    [14:11:24] [west-chai:my-project] [INFO] --- sonar-maven-plugin:2.0:sonar (default-cli) @ my-project --- 
    [14:11:26] [west-chai:my-project] [INFO] Sonar version: 2.13.1 
    [14:11:29] [west-chai:my-project] [WARN] [14:11:29.403] Derby database should be used for evaluation purpose only 
    [14:11:29] [west-chai:my-project] [INFO] [14:11:29.403] Create JDBC datasource 
    [14:11:30] [west-chai:my-project] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.0:sonar (default-cli) on project my-project: Can not execute Sonar 
    [14:11:30] [INFO] ------------------------------------------------------------------------ 
    [14:11:30] [INFO] Reactor Summary: 
    [14:11:30] [INFO] 
    [14:11:30] [INFO] PROJECT COMPONENT 1 ................... FAILURE [34.679s] 
    [14:11:30] [INFO] PROJECT COMPONENT 2 ................... SKIPPED 
    ... 
    [14:11:30] [INFO] PROJECT COMPONENT N ................... SKIPPED 
    [14:11:30] [INFO] ------------------------------------------------------------------------ 
    [14:11:30] [INFO] BUILD FAILURE 
    [14:11:30] [INFO] ------------------------------------------------------------------------ 
    [14:11:30] [INFO] Total time: 41.809s 
    [14:11:30] [INFO] Finished at: Tue Feb 07 14:11:30 CST 2012 
    [14:11:31] [INFO] Final Memory: 31M/92M 
    [14:11:31] [INFO] ------------------------------------------------------------------------ 
    [14:11:31] [ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.0:sonar (default-cli) on project my-project: Can not execute Sonar: PicoLifecycleException: method 'public final org.sonar.core.persistence.DefaultDatabase org.sonar.core.persistence.DefaultDatabase.start()', instance '[email protected], java.lang.RuntimeException: wrapper: Fail to connect to database: Cannot create PoolableConnectionFactory (java.net.ConnectException : Error connecting to server localhost on port 1527 with message Connection refused: connect.) -> [Help 1] 
    [14:11:31] [ERROR] 
    [14:11:31] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 
    [14:11:31] [ERROR] Re-run Maven using the -X switch to enable full debug logging. 
    [14:11:31] [ERROR] 
    [14:11:31] [ERROR] For more information about the errors and possible solutions, please read the following articles: 
    [14:11:31] [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException 
    [14:11:31] Process exited with code 1 
    [14:11:31] [Publishing artifacts] Paths to publish: [E:\apps\TeamCity\server\buildAgent\temp\buildTmp\.tc-maven-bi\maven-build-info.1.xml.gz => .teamcity] 
    [14:11:31] [Publishing artifacts] Sending files 
    [14:11:31] Step Sonar (Maven) failed 
    [14:11:31] Waiting for 38 service processes to complete 
    [14:11:31] Sending build.finish.properties.gz file 
    [14:11:31] Paths to publish: [MyProject\Mainline\MyApp\target\chai.war, MyProject\Mainline\MyComponent\MyComponent-service\target\MyComponent.war] 
    [14:11:31] Sending files 
    [14:11:35] Build finished 
    [14:11:30] [INFO] ------------------------------------------------------------------------ 
    [14:11:30] [INFO] BUILD FAILURE 
    [14:11:30] [INFO] ------------------------------------------------------------------------ 
    [14:11:30] [INFO] Total time: 41.809s 
    [14:11:30] [INFO] Finished at: Tue Feb 07 14:11:30 CST 2012 
    [14:11:31] [INFO] Final Memory: 31M/92M 
    [14:11:31] [INFO] ------------------------------------------------------------------------ 
    [14:11:31] [ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.0:sonar (default-cli) on project my-project: Can not execute Sonar: PicoLifecycleException: method 'public final org.sonar.core.persistence.DefaultDatabase org.sonar.core.persistence.DefaultDatabase.start()', instance '[email protected], java.lang.RuntimeException: wrapper: Fail to connect to database: Cannot create PoolableConnectionFactory (java.net.ConnectException : Error connecting to server localhost on port 1527 with message Connection refused: connect.) -> [Help 1] 
    [14:11:31] [ERROR] 
    [14:11:31] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 
    [14:11:31] [ERROR] Re-run Maven using the -X switch to enable full debug logging. 
    [14:11:31] [ERROR] 
    [14:11:31] [ERROR] For more information about the errors and possible solutions, please read the following articles: 
    [14:11:31] [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException 
    [14:11:31] Process exited with code 1 
    [14:11:31] [Publishing artifacts] Paths to publish: [E:\apps\TeamCity\server\buildAgent\temp\buildTmp\.tc-maven-bi\maven-build-info.1.xml.gz => .teamcity] 
    [14:11:31] [Publishing artifacts] Sending files 
    [14:11:31] Step Sonar (Maven) failed 
    [14:11:31] Waiting for 38 service processes to complete 
    [14:11:31] Sending build.finish.properties.gz file 
    [14:11:31] Paths to publish: [MyProject\Mainline\MyApp\target\chai.war, MyProject\Mainline\MyComponent\MyComponent-service\target\MyComponent.war] 
    [14:11:31] Sending files 
    [14:11:35] Build finished 
    

錯誤行日在後面提到端口1527,它被註釋掉的Derby配置行引用。

[14:11:31] [ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.0:sonar (default-cli) on project my-project: Can not execute Sonar: PicoLifecycleException: method 'public final org.sonar.core.persistence.DefaultDatabase org.sonar.core.persistence.DefaultDatabase.start()', instance '[email protected], java.lang.RuntimeException: wrapper: Fail to connect to database: Cannot create PoolableConnectionFactory (java.net.ConnectException : Error connecting to server localhost on port 1527 with message Connection refused: connect.) -> [Help 1] 

如果我註釋掉sonar.jdbc線以上和還原以下行,然後我們兩個「mvn clean install」和「mvn sonar:sonar」成功完成。

sonar.jdbc.url:       jdbc:derby://localhost:152/sonar;create=true 
sonar.jdbc.driverClassName:    org.apache.derby.jdbc.ClientDriver 
sonar.jdbc.validationQuery:    values(1) 

是否有Maven的目標比由聲納服務器直接使用不同的配置?是否有明確的方法來確定哪個JDBC數據源正在連接到?

回答

7

聲納服務器和您的Maven客戶端分開配置。

除非進行了其他配置否則Maven會自動假定Sonar在本地運行Derby數據庫,並解釋您的錯誤。

Sonar documentation解釋瞭如何配置Maven以支持MySQL。

1

我面臨着類似的問題昨天(4月11日2012) 1)輸入:

  • 的TeamCity 7
  • 行家3.0.4
  • 聲納2.13
  • 的PostgreSQL 9
  • 全局maven settings.xml包含具有適當數據庫設置的聲納配置文件
  • jdk 1.6。在命令行30
  • 項目構建通過確定

2)結果:

  • 的TeamCity - 不能執行聲納
  • 日誌包含異常

    Fail to connect to database: Cannot create PoolableConnectionFactory (java.net.ConnectException : Ошибка соединения с сервером localhost на порту 1527 
    

3)可能的原因:

  • TeamCity的使用錯誤的settings.xml

4)解決方案:

  • 轉到行政法治
  • 轉到左側菜單Integrations->的Maven設置
  • 上傳您的設置版本。 XML(在我的情況下,適當的設置爲聲納)