Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java tools & IDE's > Ant, ejbjar tsk


Автор: Alar 22.7.2005, 12:01
Возникла следующая проблема. Существует EJB-проект, собирается ant-ом.

Код

<?xml version="1.0" encoding="UTF-8"?>

<!-- ..... -->

<project basedir="../" default="all" name="name">
  <target depends="init,compile" name="deploy">
    <ejbjar basejarname="jarname" dependency="full"
      descriptordir="${dir.source}/META-INF" destdir="${dir.as}"
      genericjarsuffix=".jar" srcdir="${dir.output}" >

      <classpath>
        <!--  ...... -->
      </classpath>

      <dtd location="${dir.dtd}/jboss.dtd" publicid="-//JBoss//DTD JBOSS//EN"/>

      <dtd location="${dir.dtd}/ejb-jar_2_0.dtd"
        publicid="-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN"/>

      <support dir="${dir.source}" includes="**/jboss.xml"/>
    </ejbjar>
  </target>

<!-- ..... -->

</project>


ejbjar работает через зависимости. Тут на какой-то стадии появляется несколько классов, назовем их A.class, B.class, C.class. Непосредственных ссылок из бинов на них нет, вызываются они через Class.forName("A"). Поэтому, в результирующий jar таким образом они не попадают. Как быть. Поглядел доки, пробовал добавить следующее:

Код

      <include name="path/to/classes/*.class"/>


Код

      <include name="**/*A.class"/>
      <include name="**/*B.class"/>
      <include name="**/*C.class"/>


Код

      <include name="packet.subpacket.A"/>
      <include name="packet.subpacket.B"/>
      <include name="packet.subpacket.B"/>


Не помогает. smile Как быть?

ЗЫ. Есть конечно вариант в каком-нибудь бине объявить ссылки данного класса. Но это уж совсем дурное решение, так не хотелось бы.

Автор: Alar 22.7.2005, 12:41
Разобрался сам. Копать в сторону <support>.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)