2013-10-06 1 views
1

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

Я использовал аннотацию в некоторых из моих классов (большинство из них 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 не работает.

ответ

1

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

С версией 2.5.1 весной аспектом загружается успешно:

<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>