Шина IBM Integration mqsicreatebar со ссылками
Я немного запутался с использованием mqsicreatebar в моей среде. У меня есть, например, следующая структура файла:
root
|--Libraries
| \--Library1
\--Apps
\--App1
\--.project
И App1 ссылается на Library1.
Я хочу запустить mqsicreatebar так, чтобы он содержал App1 с включенной Library1. Я пытаюсь запустить следующую команду в папке root/Apps:
mqsicreatebar -data ./ -b newbarfile.bar -cleanBuild -deployAsSource -a App1 -trace
Я получаю сообщение об ошибке "Ссылочный проект Library1 не найден в файловой системе". Что я должен сделать, чтобы создать BAR с этой файловой структурой?
2 ответа
Этот параметр "data" сообщает команде mqsicreatebar, где найти рабочее пространство eclipse (рабочее пространство Integration Toolkit), которое, в свою очередь, сообщает команде mqsicreatebar, где находятся файлы проекта и другие файлы, необходимые для сборки.
Если у вас там нет рабочего пространства, команда создаст его на лету для вас, но только для текущего каталога и его подкаталогов. Я не знаю, как глубоко это заходит. Я знаю, что он ищет как минимум один подкаталог для файлов проекта (хотя ваши комментарии подразумевают, что он не просматривает два подкаталога).
В качестве альтернативы (и я понимаю, что это нежелательно, но это вариант, аналогичный тому, который вы уже опубликовали), вы можете отказаться от организации папок и поместить подпапки библиотеки и приложения в одну корневую папку. Так что у тебя есть:
root
|--Library_1
|--Library_2
|--App_1
|--App_2
Это то, что я настроил в своем проекте Bamboo, и команды сборки работают (даже без файлов рабочей области перед запуском команды, пока я указываю параметр данных на этот корневой каталог).
Единственный способ, который я нашел сам - это скопировать необходимые артефакты в текущий каталог перед запуском mqsicreatebar и удалить их после завершения сборки:
cd /root/Apps/
cp -R ../Libraries/Library1/ ./
mqsicreatebar -data ./ -b newbarfile.bar -cleanBuild -deployAsSource -a App1 -trace
rm -r Library1/