Статическое переплетение для EclipseLink с Eclipse WTP

У меня есть проект, работающий на Tomcat в Eclipse WTP, который развертывается с некоторыми объектами JPA. Я хотел бы включить отслеживание изменений для этих сущностей, но для этого необходимо включить переплетение. Поскольку Tomcat не поддерживает динамическое плетение, мне нужно сделать это со статическим плетением.

Это возможно? Плагин Eclipse Dali, похоже, не имеет возможности для статического плетения.


person Philihp Busby    schedule 11.08.2011    source источник


Ответы (1)


Да, вполне возможно, я делаю это все время. Также я использую Jetty (предварительный просмотр J2EE) в Eclipse WTP, он очень быстрый и хорошо работает, хотя на плетении. Создайте файл weave.xml, который ant может обрабатывать следующим образом:

<?xml version="1.0"?>
<project name="MyProject" default="weaving" basedir=".">
  <property environment="env"/> 

    <path id="weavingclasspath"> 
      <fileset dir="${basedir}\\web\\WEB-INF\\lib">
        <include name="**/*.jar"/>
      </fileset>
        <fileset dir="${basedir}\\antlib">
        <include name="**/*.jar"/>
      </fileset>
      <pathelement location="classes"/>
      <dirset dir="${basedir}\\build">
        <include name="**/classes"/>
      </dirset>
    </path>


    <target name="define.task" description="New task definition for EclipseLink static weaving" > 
      <taskdef name="weave" classname="org.eclipse.persistence.tools.weaving.jpa.StaticWeaveAntTask">
        <classpath refid="weavingclasspath"/> 
        </taskdef>
    </target> 

    <target name="weaving" description="perform weaving" depends="define.task"> 
        <weave loglevel="WARNING" source="${basedir}\\build\\classes\\"  target="${basedir}\\build\\classes\\">
     <classpath refid="weavingclasspath"/> 
     </weave>
    </target> 

</project> 

Поместите это в корень вашего проекта и выполните его как задачу Ant. Убедитесь, что вы обновили свой проект, когда закончите, так как все файлы .class для ваших сущностей будут переплетены. На самом деле я связываю эту задачу с процессом сборки eclipse, поэтому она выполняется автоматически. Возможно, вам придется изменить некоторые пути к файлам в скрипте ant для вашего проекта, чтобы заставить его работать, но вы должны уловить идею. В моем antlib есть servlet.jar (я не помню почему), а в моем WEB-INF/lib есть все файлы jar моего веб-проекта, а также eclipselink.

person Tim H    schedule 19.04.2012