Запустите svn update и ant build параллельно - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть куча svn-проектов, которые я хочу обновить и собрать с помощью ant.На данный момент у меня есть последовательный подход:

find /opt/src/ -path "*/trunk/build.xml" -execdir svn update $(dirname {}) \; -exec ant -f {} \;

Теперь я хочу запустить сборку муравья параллельно (или в фоновом режиме), чтобы команда поиска могла продолжаться, не будучи заблокированной вызовом муравья.Я уже читал о разветвлении в bash с '&', но не смог понять, как правильно использовать его в моем случае.

Спасибо за помощь!

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

Через некоторое время я нашел решение:

for f in $(find /opt/src/ -path "*/trunk/build.xml"); do 
svn update $(dirname $f); 
konsole --noclose --nofork -e ``ant -f $f`` &; 
done

Обновления svn запускаются последовательно, а ant строится параллельно.Это означает, что как только svn-обновление определенного каталога завершится, сборка ant будет запущена в отдельном окне консоли (здесь терминальное приложение kde).Параллельный запуск многих обновлений SVN вызвал сетевые ошибки в моей среде, поэтому я изменил поведение, как описано выше.

0 голосов
/ 01 февраля 2019

Вы можете поместить их в цикл for, начиная каждую итерацию в фоновом режиме

for f in $(find /opt/src/ -path "*/trunk/build.xml") do
...
...
done &
...