錯誤1:有個pom文件內容錯了,可是在jenkins上面編譯的時候,控制檯將這個錯誤信息給打出來了,maven的編譯也打印了failed with error,可是jenkins的job並無所以而中止,而是繼續指後面的sonar分析去了,設置了sonar 的Skip analysis on build failure,以及設置post step的Run only if build succeeds,也都無果html
[ERROR] BUILD ERROR [INFO] Failed to configure plugin parameters for: org.apache.maven.plugins:maven-dependency-plugin:2.0 Cause: Error loading class 'org.apache.maven.plugin.dependency.fromConfiguration.Dependency'
後來排查下來,懷疑是maven的缺陷致使的jenkins沒有收到錯誤碼來中斷執行致使,遂升級maven到3.0.5,而後執行build,job中斷了執行,目的達到,拋出的錯誤以下,該步的問題,基本解決java
cause : Unable to parse configuration of mojo org.apache.maven.plugins:maven-dependency-plugin:2.1:copy: Error loading class 'org.apache.maven.plugin.dependency.fromConfiguration.Dependency' Stack trace : org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.1:copy (copy-libs) on project cifin-assembly-ace: Unable to parse configuration of mojo org.apache.maven.plugins:maven-dependency-plugin:2.1:copy: Error loading class 'org.apache.maven.plugin.dependency.fromConfiguration.Dependency' at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:221) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
問題2:jenkins執行job的build時,使用的是maven3.0.5,sonar配置時,sonar-maven-plugin配置的是1.0-beta2,致使報錯:python
[ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:1.0-beta-2:sonar (default-cli) on project cifin-parent: Can not execute Sonar: UnsupportedOperationException -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:1.0-beta-2:sonar (default-cli) on project cifin-parent: Can not execute Sonar at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
這個錯誤是因爲sonar-maven-plugin致使的,能夠參考如下文檔apache
http://sonar.15.x6.nabble.com/sonar-maven-plugin-causes-UnsupportedOperationException-td5002455.htmlsession
修改jenkins config中的soanr配置中的sonar-maven-plugin version: 設置成2.0 (應該是2.0之後才支持maven 3.0.5)app
問題3:升級了sonar-maven-plugin的versio到2.0, 或者不指定(不指定時,默認是最高version應該是),以前用maven 2.2.1編譯的job,又出新情況了maven
[ERROR] FATAL ERROR [INFO] ------------------------------------------------------------------------ [INFO] PicoLifecycleException: method 'public void org.sonar.jpa.session.AbstractDatabaseConnector.start()', instance 'org.sonar.jpa.session.DriverDatabaseConnector@1304e60, java.lang.RuntimeException: wrapper Database schema must be updated [version/required=241/191]. Please browse to your sonar homepage. [INFO] ------------------------------------------------------------------------ [INFO] Trace
這又是個蛋疼的問題,解決辦法只好是把sonar的配置再複製一份出來,maven2.2.1編譯的,暫時用soanr-maven-plugin version=1.0的sonar來執行sonar分析,maven3.0.5的來用sonar-maven-plugin version=2.0來執行sonar分析post
爲何不能一下升級到maven3.0.5,由於有些蛋疼的系統的pom寫的不規範,maven3對pom的校驗又比maven2嚴格,有些maven2下面編譯沒啥問題的系統,用maven3就編譯不過了,除非推進他們去修改到那些不規範的pomui