带有引用的IBM Integration总线mqsicreatebar

时间:2017-11-21 16:43:35

标签: ibm-integration-bus

我对在我的环境中使用mqsicreatebar感到困惑。例如,我有以下文件结构:

root
|--Libraries
|  \--Library1
\--Apps
   \--App1
      \--.project

App1 引用 Library1。

我想运行mqsicreatebar,使其包含包含Library1的App1。我尝试在root / Apps文件夹中运行下一个命令:

mqsicreatebar -data ./ -b newbarfile.bar -cleanBuild -deployAsSource -a App1 -trace

我收到错误"在文件系统"上找不到引用的项目Library1。如何使用此文件结构创建BAR?

2 个答案:

答案 0 :(得分:0)

我自己发现的唯一方法是在运行mqsicreatebar之前将必要的工件复制到当前目录,并在构建完成后删除它们:

cd /root/Apps/
cp -R ../Libraries/Library1/ ./
mqsicreatebar -data ./ -b newbarfile.bar -cleanBuild -deployAsSource -a App1 -trace
rm -r Library1/

答案 1 :(得分:0)

“data”参数告诉mqsicreatebar命令在哪里找到eclipse工作区(Integration Toolkit工作区),然后告诉mqsicreatebar命令项目文件和构建所需的其他文件在哪里。

如果您还没有工作区,该命令将为您动态创建一个工作区,但仅针对当前目录及其子目录。我不知道这有多深。我知道它至少看了一个项目文件的子目录(虽然你的评论意味着它不会向下看两个子目录)。

或者,(我知道这不是必需的,但它是一个选项,类似于您已发布的选项),您可以放弃文件夹组织并将库和应用程序子文件夹放在同一个根文件夹中。所以你有:

root
|--Library_1
|--Library_2
|--App_1
|--App_2

这是我在Bamboo项目中设置的并且构建命令有效(即使在运行命令之前没有工作区文件,只要我将数据参数指向此根目录)。