【问题标题】:JacORB: changing prefix and suffixJacORB:更改前缀和后缀
【发布时间】:2015-02-23 07:32:45
【问题描述】:

我想在我的 ant 构建中更改包 前缀和后缀,同时从 idl 生成 java。这必须是通用解决方案!这个想法是这样的:

我有 idl 文件(ONE.idl、TWO.idl),第一个名称空间为 ONE_cb,第二个为 TWO_cb(因为 c++ 兼容性需要 _cb 后缀)。 TWO_cb 具有来自 ONE_cb 的属性,ONE_cb 只有基本类型。我想将其更改为像 com.example.ONEcom.example.TWO 这样的包。

我正在使用 JacORB 3.6。我不知道该怎么做。
我的代码如下所示:

<target name="idlj-generate">
<idl2java
   srcdir="${psm.dir}/${project}/"
   destdir="${build.generated.dir}"
   includepath="${psm.dir}"
   all="true">
      <define key="__JACORB_GENERATE__"/>
      <i2jpackage names=":com.example"/>
      <i2jpackage names="_cb:"/>
</idl2java>
</target>

它不起作用。正如我之前所说,它必须是通用解决方案。添加

<i2jpackage names="TWO_cb:TWO"/> //option 2
<i2jpackage names="ONE_cb:ONE"/> //option 2b

不可接受

感谢您的宝贵时间。

【问题讨论】:

    标签: ant corba idl jacorb


    【解决方案1】:

    如果我理解正确,你有类似的东西

    module ONE_cb
    {
    ...
    }
    

    但你希望它是

    com.example.ONE { ... }
    

    这对于 i2jpackage 是可行的,例如

    idl -forceOverwrite -d /tmp/generated -i2jpackage ONE_cb:com.example.ONE myfile.idl
    

    您遇到的问题是您同时编译两个文件。删除“全部”并尝试分两个阶段编译它们。

    如果您使用的是 Maven,我还建议您尝试 org.codehaus.mojo:idlj-maven-plugin,因为您可以很容易地执行多个操作。

    要使用多个 i2jpackage,我可以使用它

    idl -forceOverwrite -d /tmp/generated -all -i2jpackagefile /tmp/file antBugJac608-2.idl
    

    (其中 antBugJac608-2 #includes antBugJac608)。

    【讨论】:

    • 这对我没有帮助。首先我没有使用maven。其次,正如我两次所说:我想要通用解决方案 - 明确更改名称是显而易见的。第三点也是最重要的一点:分两个阶段编译会正确生成 ONE(因为它只有基本类型),但编译没有 ONE 的 TWO 会导致错误,因为 TWO 具有来自 ONE 的属性,即 ONE_cb::structA a; 首先生成的文件不再是ONE_cb,而是com.example.ONE
    • 我已经编辑了我的答案以包含多个 i2jpackage。我相信 Ant 任务也支持 i2jpackagefile (file=xxx) 所以你可以试试。
    • 感谢您的宝贵时间 - 在这个问题和上一个问题上 - 但这次它没有帮助我: 1. 我发现通用解决方案在 jacORB 中是不可能的。我需要知道所有名称并通过 i2jpackage 更改它们。 2. 正如我之前所说 - 删除“all”标志不会编译我的源文件,因为每个文件都位于不同的文件夹中并生成到不同的文件夹。 Netherless 谢谢你的时间
    • 在我修改后的评论中(见底部的命令)我保留了'all'标志
    【解决方案2】:

    对于各种研究,我得出的结论是通用解决方案是不可能的。 同时执行更改前缀和后缀的唯一方法是显式设置所有包含的名称。

    【讨论】:

    • 如果你能在 JacORB Bugzilla 中提供完整的测试用例,我可以研究一下
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-17
    • 2010-10-25
    相关资源
    最近更新 更多