JacORB:更改前缀和后缀
JacORB: changing prefix and suffix
我想在从 idl 生成 java 时更改我的 ant 构建中的包 前缀和后缀 。这必须是通用解决方案!这个想法是这样的:
我有 idl 文件(ONE.idl、TWO.idl),第一个是命名空间 ONE_cb,第一个是 TWO_cb 秒(因为 C++ 兼容性需要 _cb 后缀)。 TWO_cb 有来自 ONE_cb 的属性,ONE_cb 只有基本类型。我想将其更改为 com.example.ONE 和 com.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
不可接受
感谢您的宝贵时间。
如果我对你的理解正确的话,你有类似的东西
module ONE_cb
{
...
}
但你希望它成为
com.example.ONE { ... }
这对于 i2jpackage 是可行的,例如
idl -forceOverwrite -d /tmp/generated -i2jpackage ONE_cb:com.example.ONE myfile.idl
您遇到的问题是您同时编译了这两个文件。删除 "all" 并尝试分两个阶段编译它们。
如果您使用的是 Maven,我还建议您尝试 org.codehaus.mojo:idlj-maven-plugin,因为您可以使用它轻松地执行多个操作。
为了使用多个 i2jpackage,我使用了它
idl -forceOverwrite -d /tmp/generated -all -i2jpackagefile /tmp/file antBugJac608-2.idl
(其中 antBugJac608-2 #includes antBugJac608)。
对于各种研究,我得出结论,通用解决方案是不可能的。
同时执行更改前缀和后缀的唯一方法是显式设置所有包含的名称。
我想在从 idl 生成 java 时更改我的 ant 构建中的包 前缀和后缀 。这必须是通用解决方案!这个想法是这样的:
我有 idl 文件(ONE.idl、TWO.idl),第一个是命名空间 ONE_cb,第一个是 TWO_cb 秒(因为 C++ 兼容性需要 _cb 后缀)。 TWO_cb 有来自 ONE_cb 的属性,ONE_cb 只有基本类型。我想将其更改为 com.example.ONE 和 com.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
不可接受
感谢您的宝贵时间。
如果我对你的理解正确的话,你有类似的东西
module ONE_cb
{
...
}
但你希望它成为
com.example.ONE { ... }
这对于 i2jpackage 是可行的,例如
idl -forceOverwrite -d /tmp/generated -i2jpackage ONE_cb:com.example.ONE myfile.idl
您遇到的问题是您同时编译了这两个文件。删除 "all" 并尝试分两个阶段编译它们。
如果您使用的是 Maven,我还建议您尝试 org.codehaus.mojo:idlj-maven-plugin,因为您可以使用它轻松地执行多个操作。
为了使用多个 i2jpackage,我使用了它
idl -forceOverwrite -d /tmp/generated -all -i2jpackagefile /tmp/file antBugJac608-2.idl
(其中 antBugJac608-2 #includes antBugJac608)。
对于各种研究,我得出结论,通用解决方案是不可能的。 同时执行更改前缀和后缀的唯一方法是显式设置所有包含的名称。