GWT, Maven и AspectJ: проверка RequestFactory для кода AOPed?

Чтобы использовать GWT 2.4.0 RequestFactory, вы должны запустить инструмент проверки фабрики запросов. В противном случае это просто не сработает. [Google говорит][1], что достаточно просто добавить 2 плагина в pom.xml:

  <!-- requestfactory-apt runs an annotation processor (APT) to
       instrument its service interfaces so that
       RequestFactoryServer can decode client requests. Normally
       you would just have a dependency on requestfactory-apt
       with <scope>provided</scope>, but that won't work in
       eclipse due to m2e bug
       https://bugs.eclipse.org/bugs/show_bug.cgi?id=335036 -->
  <plugin>
    <groupId>org.bsc.maven</groupId>
    <artifactId>maven-processor-plugin</artifactId>
    <version>2.0.5</version>
    <executions>
      <execution>
        <id>process</id>
        <goals>
          <goal>process</goal>
        </goals>
        <phase>generate-sources</phase>
      </execution>
    </executions>
    <dependencies>
      <dependency>
        <groupId>com.google.web.bindery</groupId>
        <artifactId>requestfactory-apt</artifactId>
        <version>${gwtVersion}</version>
      </dependency>
    </dependencies>
  </plugin>

  <!-- Google Plugin for Eclipse (GPE) won't see the source
       generated above by requestfactory-apt unless it is exposed
       as an additional source dir-->
  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>1.7</version>
    <executions>
      <execution>
        <id>add-source</id>
        <phase>generate-sources</phase>
        <goals>
          <goal>add-source</goal>
        </goals>
        <configuration>
          <sources>
            <source>${project.build.directory}/generated-sources/apt</source>
          </sources>
        </configuration>
      </execution>
    </executions>
  </plugin>

Проблема в том, что у меня довольно сложный код на стороне сервера, который использует АОП, поэтому, когда инструмент проверки запускается для этого кода, он терпит неудачу, потому что «нет метода xxx()», «класс xxx не реализует интерфейс yyy», и Т. Д.

Итак, мой вопрос: можно ли решить эту проблему на уровне pom.xml, а не перемещать весь код АОП в отдельный проект, который будет компилироваться отдельно?


person Andrey Agibalov    schedule 02.10.2011    source источник


Ответы (1)


Решено путем переноса всего кода AOPed в другой проект.

person Andrey Agibalov    schedule 07.10.2011