MacO 中的编译问题

问题描述 投票:0回答:1

我目前正在开发一个微服务应用程序,到目前为止我一直在使用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
部分,但问题仍然相同。

java spring-boot maven lombok
1个回答
0
投票

问题来自于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>
© www.soinside.com 2019 - 2024. All rights reserved.