2015-08-19 11 views
2

Я сконфигурировал анализ sonarqube для пост-сборки с помощью hudson SonarPlugin. Я настроил MAVEN_OPTS для SonarPlugin быть похожим на это: «-Xmx1024m -Dmaven.javadoc.failOnError = ложь»Hudson SonarPlugin терпит неудачу, если MAVEN_OPTS заданы в задании построения

Если я запускаю работу возникает ошибка, когда Гудзон пытается выполнить действие после сборки:

[workspace] $ mvn -f /home/hudson-3.3.0/jobs/myJob/workspace/pom.xml -e -B sonar:sonar -Dsonar.jdbc.driver=oracle.jdbc.OracleDriver -Dsonar.jdbc.url=jdbc:oracle:thin:@xxxxx:1521/xxxx ******** ******** -Dsonar.host.url= http://xxxx:9000/sonar
Error: Could not find or load main class MAVEN_OPTS
Sonar analysis completed: FAILURE

Я использую следующие настройки:
Tomcat 8.0.24
Хадсон 3.3.0
Сонар-Plugin 2.0.1
Maven 3.0.5/3.2.5
JDK 1.7.0_45

На старшей версии hudson с Sonar-Plugin 1.8.1 сработала сборка.

В качестве обходного пути я настроил переменную пути MAVEN_OPTS, чтобы содержать ожидаемые параметры, но поскольку мне приходится настраивать разные задания с разными настройками, это всего лишь обходной путь.

У кого-нибудь есть идея, как решить эту проблему?

ответ

1

Как вы можете прочитать в Bug 474406 это ошибка Hudson 3.3.x. Он не имеет ничего общего с Sonar Plugin 2.0.1, который отлично справился с Hudson 3.1.2.

Это происходит с Хадсона после сборки действия в:

обходным должен добавить build parameter к работе, см Bug 474406:

Build parameter configuration

0

В то время как решение dur отлично работает, оно имеет недостаток в том, что ссылка «build now» запрашивает параметр build вместо того, чтобы просто строить.

Чтобы заставить его работать без необходимости в параметризованной сборке, я изменил Хадсон $HOME/.mavenrc содержать следующую строку:

export MAVEN_OPTS="$(echo ${MAVEN_OPTS} | sed -e 's#^MAVEN_OPTS ##')" 

Это срывает ведущий «MAVEN_OPTS» из переменной MAVEN_OPTS. Поэтому, если hudson/плагин устанавливает MAVEN_OPTS="MAVEN_OPTS -Xmx128m", этот mavenrc изменит MAVEN_OPTS, чтобы он содержал только -Xmx128m.