Мой скрипт сборки ant запускается с задачи Java, которая использует fork = true
<java fork="true"
classname="org.apache.tools.ant.launch.Launcher"
jvm="${java.home}/bin/java"
classpathref="class.path">
<arg value="-f" />
<arg value="${ant.file}" />
<arg value="generate" />
</java>
<arg value="generate" />
указывает на другую задачу в том же файле сборки муравья.
Эта задача запускает другую цель с дополнительной задачей, которая указывает на другой файл.
<subant verbose="true" target="replace">
<fileset dir="${basedir}" includes="refactor.xml" />
</subant>
Этот файл refactor.xml снова запускает задачу java с fork = true.
<java classpathref="class.path"
classname="namespace.Tool"
fork="true"/>
Странное поведение: все работает нормально, кроме того, что время от времени я получаю ошибку NoClassDefFoundError
для исходного файла namespace.Tool
java.
После, например, закрытие, повторное открытие файла, ошибка может исчезнуть, однако нет воспроизводимого поведения.
Я пытался избегать конструкции subant (раньше не загромождал), но это не помогло.
Наконец, class.path, на который ссылаются, выглядит так:
<path id="class.path">
<pathelement location="../common/bin" />
<pathelement location="./bin" />
<fileset dir="${build.dir}">
<include name="...jar" />
</fileset>
</path>
Есть идеи?