我想在从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是不可接受的
谢谢您抽时间见我。
发布于 2015-02-26 07:39:20
对于各种研究,我的结论是通用的解决方案是不可能的。同时进行前缀和后缀更改的唯一方法是对所有包含的名称进行说明。
发布于 2015-02-23 14:57:44
如果我没听错你的话
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 plugin,因为您可以非常容易地执行多个执行。
要使用多个i2jpackage,我让它使用
idl -forceOverwrite -d /tmp/generated -all -i2jpackagefile /tmp/file antBugJac608-2.idl(其中antBugJac608-2 #包括antBugJac608)。
https://stackoverflow.com/questions/28668823
复制相似问题