我有一個多模塊項目。該方面目前被添加到「核心」項目中。在此處執行mvn clean install
時可以使用。但是試圖在父項目做一個mvn clean install
它失敗,此錯誤編譯其他項目之一時:編譯時使用AspectJ編譯器代替Javac時出錯
類型org.hibernate.annotations.CacheConcurrencyStrategy不能得到解決。所以它不是 - 這是間接需要的.class文件
如果我在該項目中添加Hibernate核心依賴過於它的工作原理,但添加依賴於不應該依賴沒有意義的項目引用一個辦法。當編譯javac
它工作正常。
是什麼原因?我該如何解決這個問題,以便我可以使用AspectJ編譯器,而不會將依賴項泄漏到不應該具有的項目上?
我在父POM此配置:
<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>
更新
我剛發現。正在運行mvn clean install
每次都失敗。但是,一次運行mvn [clean] install
失敗。然後運行mvn install
而沒有clean
的作品。我發現目標文件夾中的builddef.lst
是它工作的原因,並根據您是否運行乾淨而失敗。所以現在我的問題是:你如何自動生成這個文件?
父POM文件:
<?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>
什麼是異常的堆棧跟蹤,你的方面是怎樣的? – SpaceTrucker
@KnightRider你應該更新你的問題,而不是添加評論。 –
@LeonardBrünings完成。 –