【问题标题】:IBM Integration bus mqsicreatebar with references带有参考的 IBM 集成总线 mqsicreatebar
【发布时间】:2017-11-24 11:06:35
【问题描述】:

我对在我的环境中使用 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?

【问题讨论】:

  • 您从该结构中的哪个目录运行它?从同时是(包含两者)“库”和“应用程序”的父文件夹的文件夹中?
  • @Dex,不。我从 Apps 文件夹运行它,正如我在问题中已经提到的那样。稍微更新了问题以使其更清晰。顺便说一句,如果有可能从“根”文件夹运行命令,那也是一个很好的解决方案。
  • 添加了自己的解决方案。也许不完美,但解决了我的问题。如果有人有更好的选择,请也发布。
  • 在您运行它的文件夹中是否有一个 Eclipse 工作区(Integration Toolkit 工作区),该文件夹引用了“外部”库(至少在您运行它的文件夹路径外部)?该“数据”参数告诉创建栏命令在哪里可以找到工作区文件,告诉它项目文件和它需要的其他文件在哪里。如果您还没有工作区,它会为您即时创建一个工作区,但仅限于当前目录及其子目录。
  • 我不知道它向下查找了多少子目录(至少一个),所以在根文件夹中运行它可能允许它在它们的子目录中找到两个库- 子文件夹及其子子文件夹中的应用程序,当它为您创建工作区时。

标签: ibm-integration-bus


【解决方案1】:

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

如果您还没有工作区,该命令将为您即时创建一个工作区,但仅适用于当前目录及其子目录。我不知道这有多深。我知道它至少会向下查找一个子目录来查找项目文件(尽管您的 cmets 暗示它不会向下查找两个子目录)。

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-11
      • 1970-01-01
      • 2016-03-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-18
      相关资源
      最近更新 更多