Mam projekt z wieloma modułami. Aspekt jest obecnie dodawany do projektu "core". Kiedy robisz mvn clean install
tutaj, to działa. Jednak staramy się zrobić mvn clean install
nad projektem dominującej nie jest on z tego błędu podczas kompilacji jedną z innymi projektami:Błąd podczas kompilacji podczas korzystania z kompilatora AspectJ zamiast Javac
Typ org.hibernate.annotations.CacheConcurrencyStrategy nie może zostać rozwiązany. To jest pośrednio odwołuje się od wymaganych plików .class
Jeśli dodać rdzenia zależność hibernacji w tym projekcie też to działa, ale dodanie zależności do projektów, które nie powinny mieć zależność nie ma sensu - więc nie jest rozwiązanie. Podczas kompilacji z javac
działa dobrze.
Jaki jest tego powód? I jak mogę to naprawić, aby móc używać kompilatora AspectJ bez przeciekania zależności do projektów, które nie powinny tego robić?
mam tę konfigurację w POM nadrzędny:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.5</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<complianceLevel>1.6</complianceLevel>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Aktualizacja
Właśnie się dowiedziałem. Uruchamianie mvn clean install
kończy się niepowodzeniem za każdym razem. Jednak jednorazowe uruchomienie mvn [clean] install
kończy się niepowodzeniem. Następnie działa mvn install
bez clean
działa. Widzę, że builddef.lst
w folderze docelowym jest powodem, dla którego działa i kończy się niepowodzeniem w zależności od tego, czy uruchomisz czyszczenie. Teraz moje pytanie brzmi: w jaki sposób automatycznie generujesz ten plik?
nadrzędna POM-file:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany</groupId>
<artifactId>core-lib</artifactId>
<name>core-lib</name>
<packaging>pom</packaging>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.5</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<complianceLevel>1.6</complianceLevel>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.7.4</version>
</dependency>
</dependencies>
<modules>
<module>core-xyz</module>
<module>core-xyz2</module>
</modules>
</project>
Co to jest stacktrace wyjątku i jak wygląda twój aspekt? – SpaceTrucker
@KnightRider powinieneś zaktualizować swoje Pytanie zamiast dodawać komentarze. –
@ LeonardBrünings Zrobione. –