2012-07-03 12 views
8

Jakie są odpowiednie wersje konfiguracji/wersji/wtyczek dla wtyczki aspectj do korzystania z Java 7?Jak skonfigurować wtyczkę aspectj maven do korzystania z Java 7?

Próbuję dokonać aktualizacji z Java 6 do Java 7, a kompilator aspectj wydaje się nie kompilować Java 7. Określam wersję źródłową java i docelową jako 1.7 w konfiguracji wtyczki dla wtyczki aspektj i dla maven kompilator wtyczki. Wprowadziłem specyficzną dla Java7 składnię do mojego kodu, dodając kilka funkcji językowych, takich jak łańcuch w przełączniku i operator diamentów. Podczas kompilacji dostaję błędy od aspektu na temat składni Java7. Pierwszy znak, że sprawy idą źle jest:

[INFO] --- aspectj-maven-plugin:1.4:compile (default) @ site --- 
[ERROR] Cannot switch on a value of type String. Only int values or enum constants are permitted 
[ERROR] Cannot instantiate the type HashSet<?> 
[ERROR] Syntax error on token "<", ? expected after this token 

Jeśli usunąć sekcję egzekucje z wtyczki AspectJ maven tak to nie działa, i użyć mvn czystej instalacji, nowy kod kompiluje grzywny. Więc myślę, że to coś źle skonfigurowanego z aspektj. Oto moja konfiguracja wtyczki:

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <java-version>1.7</java-version> 
    <org.aspectj-version>1.6.11</org.aspectj-version> 
</properties> 

     <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>${org.aspectj-version}</version> 
       </dependency> 
       <dependency> 
        <groupId>org.aspectj</groupId> 
        <artifactId>aspectjtools</artifactId> 
        <version>${org.aspectj-version}</version> 
       </dependency> 
      </dependencies> 
      <executions> 
       <execution> 
        <goals> 
         <goal>compile</goal> 
         <goal>test-compile</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <complianceLevel>${java-version}</complianceLevel> 
       <encoding>${project.build.sourceEncoding}</encoding> 
       <outxml>true</outxml> 
       <source>${java-version}</source> 
       <target>${java-version}</target> 
      </configuration> 
     </plugin> 

także aspectjrt jest zdefiniowany jako zależność poza sekcji wtyczek

<dependencies> 
    <dependency> 
     <groupId>org.aspectj</groupId> 
     <artifactId>aspectjrt</artifactId> 
     <version>${org.aspectj-version}</version> 
    </dependency> 
<dependencies> 

Odpowiedz

8

I aktualizowany od 1.6.11 do 1.7.0, który został zwolniony od Poprosiłem to pytanie. Nie mam już żadnych aspektów aspektj/Java1.7, więc rozwiązuje to pytanie.

+0

Istnieje również żądanie funkcji, mam nadzieję, że wkrótce zostanie ona naprawiona http://jira.codehaus.org/browse/MASPECTJ-108 – ozhan

+0

aspectj wersja? – pavan

Powiązane problemy