賞金將在 2 小時后到期。此問題的答案有資格獲得 50聲望賞金。 MrFisherman想引起更多人對這個問題的關注。
在我的應用程式中,我有 3 個這樣的模塊:
permissions (parent pom)
|---permission-api (just api, without main spring class)
|---permission-service (spring boot app)
在主模塊的父 pom 中,我有 pom,其中包含:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<modules>
<module>permissions-api</module>
<module>permissions-service</module>
</modules>
和一些依賴項。現在我想用 maven clean install 構建我的整個專案。Permission-api 模塊已構建(lombok 注釋沒有問題)。在 pom 中,僅對 lombok 的參考是:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
無論如何,當我嘗試僅構建權限服務或整個專案時,我遇到了如下編譯錯誤:
cannot find symbol
[ERROR] symbol: method getPermissionsList()
[ERROR] location: variable employee of type permissions.model.entity.Employee
我知道我應該將 maven-compiler-plugin 添加到 pom.xml (我也嘗試將其添加到父 pom 中)并且我做到了,但它沒有幫助:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</build>
你能告訴我我做錯了什么嗎?
uj5u.com熱心網友回復:
同時,我找到了解決方案。當我添加時,一切都開始起作用了:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-envers</artifactId>
<version>${hibernate.version}</version>
</dependency>
可能缺少的依賴項導致了第一個編譯錯誤,并且 maven 編譯器也錯誤地將下一個 lombok“缺少注釋”顯示為編譯錯誤。
uj5u.com熱心網友回復:
與projectlombok.org中的依賴關系應該在“提供”范圍內,這意味著它僅在編譯時需要,但在運行時不需要:
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
<scope>provided</scope>
</dependency>
</dependencies>
這應該足夠了。
uj5u.com熱心網友回復:
當您使用可選的 true 時,您正在防止依賴項被傳遞到其子項。洗掉可選的,你應該沒問題。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/441727.html
