GWT, Maven и AspectJ: проверка RequestFactory для кода AOPed? - PullRequest
3 голосов
/ 02 октября 2011

Чтобы использовать 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>

Проблема в том, что у меня довольно сложный код на стороне сервера, который использует AOP, поэтому, когда средство проверки запускается для этого кода, происходит сбой, потому что "нет метода xxx ()", класс xxx не реализует интерфейс гггг и т. д.

Итак, мой вопрос: возможно ли исправить эту проблему на уровне pom.xml, вместо того, чтобы переместить весь код AOP в отдельный проект, который будет скомпилирован отдельно?

1 Ответ

0 голосов
/ 07 октября 2011

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

...