У меня есть одна проблема с задачей idl2java ant
(я использую org.jacorb.idl.JacIDL). Этой самой проблемы не существует с моей реализацией cpp для создания idl-файлов формы кода cpp.
У меня есть 3 файла *.idl, скажем:
- A.idl
- B.idl
- C.idl
Каждый из них находится в папке с именем файла в каталоге psm, теперь:
A.idl состоит только из основных типов,
B.idl включает A.idl, а также имеют некоторые базовые типы,
C.idl включает B.idl и A.idl в этот конкретный заказ.
Я не могу изменить порядок включения. Сборка A и B не вызывает проблем. Здание C выдает ошибку:
[jacorb.idl] ERROR : C.idl, line:16(52): Undefined name:
Сдвиг включает в себя порядок A,B, вместо B,A решает проблему, но я повторюсь - я не могу этого сделать по разным причинам, одна из что является фактом, что реализация cpp, основанная на библиотеке ACE, работает нормально.
Поэтому я вежливо прошу вас о помощи, потому что я понятия не имею, можно ли с этим помочь. Вот моя актуальная задача в качестве бонуса - может быть, это поможет (если есть опечатка, извините, это только здесь - код "работает").
<target name="idlj-generate" depends="idlj-init">
<idl2java
srcdir="${psm.dir}/${project}/"
destdir="${build.generated.dir}"
packageprefix="com.mypackageprefix"
includepath="${psm.dir}"
all="true">
<define key="__JACORB_GENERATE__"/>
<define key="globalimport" value="true"/>
</idl2java>
</target>
и для ознакомительных целей рабочая часть:
<taskdef name="idl2java" classname="org.jacorb.idl.JacIDL">
<classpath refid="idlj.classpath"/>
</taskdef>