Spring @Configurable с Maven

Я использую Spring в своем текущем проекте, но аннотация @Configurable не работает.

Я использовал аннотацию в некоторых своих классах (большинство из них JPA Entities):

@Configurable  
@Entity  
public class Person{  
...  
  @Inject  
  private PersonService service;  
...  
}  

Я поместил плагин aspectj-maven в свой pom.xml:

<plugin>

<groupId>org.codehaus.mojo</groupId>  
<artifactId>aspectj-maven-plugin</artifactId>  
<version>1.4</version>
<dependencies> 
<dependency>  
<groupId>org.aspectj</groupId>  
<artifactId>aspectjrt</artifactId>  
<version>${aspectj.version}</version>  
</dependency>  
<dependency>  
<groupId>org.aspectj</groupId>  
<artifactId>aspectjtools</artifactId> 
<version>${aspectj.version}</version>  
</dependency>  
</dependencies>  
<executions>  
<execution>  
<phase>process-sources</phase>  
<goals>  
<goal>compile</goal>  
<goal>test-compile</goal>  
</goals>  
</execution>  
</executions>  
<configuration>  
<outxml>true</outxml>  
<showWeaveInfo>true</showWeaveInfo>  
<Xlint>ignore</Xlint>  
<aspectLibraries>  
<aspectLibrary>  
<groupId>org.springframework</groupId>  
<artifactId>spring-aspects</artifactId>  
</aspectLibrary>  
</aspectLibraries>  
<source>${java.version}</source>  
<target>${java.version}</target>  
<weaveWithAspectsInMainSourceFolder>false</weaveWithAspectsInMainSourceFolder>  
</configuration>  
</plugin>

Но аспект Spring не загружается во время компиляции, поэтому аннотация @Inject не работает.


person jfcorugedo    schedule 06.10.2013    source источник


Ответы (1)


Проблема в версии компиляции maven.

В версии 2.5.1 аспект Spring загружается успешно:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>2.5.1</version>
  <configuration>
    <source>${java.version}</source>
    <target>${java.version}</target>
    <encoding>${project.build.sourceEncoding}</encoding>
  </configuration>
</plugin>

А вот с версией 3.1 аспект не работает.

ЭТО НЕ РАБОТАЕТ:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>3.1</version>
  <configuration>
    <source>${java.version}</source>
    <target>${java.version}</target>
    <encoding>${project.build.sourceEncoding}</encoding>
  </configuration>
</plugin>
person jfcorugedo    schedule 06.10.2013