我目前正在开发一个微服务应用程序,到目前为止我一直在使用Windows 10。但是,最近我已将我的设置更改为Mac。安装 Java + Maven 并尝试编译项目后,我在大多数项目上遇到了编译问题。其中 2 个编译没有问题,但其他几个在 Windows 中运行的 lombok 或其他依赖项存在问题。
这是编译问题之一的示例。这与编译中未拾取的 lombok 注释有关:
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class ExtendedMktQuote {
private String type;
private String source;
private String last;
private String last_timedate;
private String last_time;
private String change;
private String change_pct;
private String volume;
private String volume_alt;
private String changetype;
}
编译时,所有参数都出现此错误:
[ERROR] location: variable quoteResponse of type EAS.ExternalAPIService.ExternalAPIReplies.CNBCReplies.ExtendedMktQuote
[ERROR] {pathRedacted}.java:[24,67] cannot find symbol
[ERROR] symbol: method getType()
这是我的 pom 文件在 maven / lombok 部分的示例:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>false</optional>
</dependency>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
使用 lombok 进行
@Getter
和 @Setter
的其他类也显示出相同的问题。
macOS 中的 lombok 是否存在类似的已知问题?这可能是与 Java / Maven 安装相关的问题吗?
在pom上,我已经尝试取出与lombok相关的pom构建中的
excludes
部分,但问题仍然相同。
问题来自于maven默认的jdk。我的项目是在 java 17 上构建的,但由于某种原因,当使用 homebrew 安装项目时,maven 不会检查 java 版本是否已安装并安装最新的 jdk (23)。更新要使用的 jdk 后,项目运行良好,但我还更新了我的 pom 以在构建部分中包含 lombok:
<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>