Статическое плетение для EclipseLink с Eclipse WTP - PullRequest
2 голосов
/ 11 августа 2011

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

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

1 Ответ

2 голосов
/ 19 апреля 2012

Да, очень возможно, я делаю это все время.Также я использую Jetty (J2EE Preview) в 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.

...