Хадсон не проверяет использование символических ссылок при использовании SVN (Subversion)
Проблема в том, что когда Хадсон проверяет файлы, он не использует символические ссылки. Я пробовал подключаемые модули svn13 и svn14, но ни один не работал.
4 ответа
В Linux отредактируйте ваш файл скрипта /etc/init.d/hudson:
Ищите строку, которая выглядит следующим образом:
$SU $HUDSON_USER --shell=/bin/bash -c "$DAEMON $DAEMON_ARGS -- $JAVA $JAVA_ARGS -jar $HUDSON_WAR $HUDSON_ARGS" || return 2
Измените это на:
$SU $HUDSON_USER --shell=/bin/bash -c "$DAEMON $DAEMON_ARGS -- $JAVA $JAVA_ARGS -Dsvnkit.symlinks=true -jar $HUDSON_WAR $HUDSON_ARGS" || return 2
Сохраните файл и введите:
sudo /etc/init.d/hudson stop
sudo /etc/init.d/hudson start
Таким образом, вы хотите передать JAVA -Dsvnkit.symlinks=true, чтобы символические ссылки разрешались в папки, а не в файл.
В CentOS строка, которую вы должны изменить, гласит:
JAVA_CMD="$JENKINS_JAVA_CMD $JENKINS_JAVA_OPTIONS -DJENKINS_HOME=$JENKINS_HOME -jar $JENKINS_WAR"
Измените это на:
JAVA_CMD="$JENKINS_JAVA_CMD $JENKINS_JAVA_OPTIONS -DJENKINS_HOME=$JENKINS_HOME -Dsvnkit.symlinks=true -jar $JENKINS_WAR"
И перезапустите Дженкинс
Я не уверен, какую версию плагина Subversion вы пробовали, но начиная с плагина Subversion 1.30 он работает "из коробки".
Я предполагаю, что SVNKit в какой-то момент изменит стандартное значение по умолчанию на символическую ссылку, и Дженкинс выиграл от этого.
Если вы хотите изменить этот параметр для каждого подчиненного узла, это сработало для меня:
От Jenkins UI:
- Отключить узел
- Нажмите на подчиненный узел, в разделе "Настройка" -> "Дополнительно" -> "Параметры JVM":
- Добавить строку: Dsvnkit.symlinks=true
- Перезапустить раб