无法在项目上执行目标 org.apache.maven.plugins:maven-compiler-plugin:3.13.0:compile (default-compile):编译失败

优质博文:IT-BLOG-CN

问题

我在尝试清理或构建 maven 项目时遇到错误。错误与我的模型中的 getter/setter 有关,这些模型的顶部有 @Data 注释。尽管它们捆绑在 @Data 中,但我尝试在模型中包含 @Getter 和 @Setter,看看是否会有任何变化,但无济于事。

完整错误:

   [INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  8.155 s
[INFO] Finished at: 2024-11-02T15:07:27Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.13.0:compile (default-compile) on project: Compilation failure: Compilation failure: 
[ERROR] /Users/**/Documents/**/projects/**/src/main/java/com/example/**/controller/Controller.java:[88,14] cannot find symbol
[ERROR]   symbol:   method setImageUrl(java.lang.String)
[ERROR]   location: variable album of type com.example.**.model.**
[ERROR] /Users/**/Documents/**/projects/**/src/main/java/com/example/**/controller/Controller.java:[99,21] cannot find symbol
[ERROR]   symbol:   method setImageUrl(java.lang.String)
[ERROR]   location: variable newAlbum of type com.example.**.model.**

现在,我对 pom.xml 进行了调整,但似乎没有任何效果。唯一的变化是将 Java 从 21.0.4 更新到 21.0.5。恢复到 21.0.4 不会改变任何东西。此外,我尝试过使缓存无效并重新启动。

这是我的完整 pom.xml:

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.3.3</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>**</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>**</name>
    <description>**</description>
    <url/>
    <licenses>
        <license/>
    </licenses>
    <developers>
        <developer/>
    </developers>
    <scm>
        <connection/>
        <developerConnection/>
        <tag/>
        <url/>
    </scm>
    <properties>
        <java.version>21</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-cache</artifactId>
        </dependency>
        <dependency>
            <groupId>com.github.ben-manes.caffeine</groupId>
            <artifactId>caffeine</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springdoc</groupId>
            <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
            <version>2.0.2</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.datatype</groupId>
            <artifactId>jackson-datatype-jdk8</artifactId>
            <version>2.15.3</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.datatype</groupId>
            <artifactId>jackson-datatype-jsr310</artifactId>
        </dependency>
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.34</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.cloudinary</groupId>
            <artifactId>cloudinary-http45</artifactId>
            <version>1.39.0</version>
        </dependency>
        <dependency>
            <groupId>com.cloudinary</groupId>
            <artifactId>cloudinary-taglib</artifactId>
            <version>1.39.0</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.13.0</version>
                <configuration>
                    <source>21</source>
                    <target>21</target>
                </configuration>
            </plugin>
            <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>

</project>

编辑:

对于 mvn clean 来说,构建成功,但是对于 mvn package 来说,构建失败:

mvn clean
[INFO] Scanning for projects...
[INFO] 
[INFO] --------------------< com.example:** >---------------------
[INFO] Building ** 0.0.1-SNAPSHOT
[INFO]   from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- clean:3.3.2:clean (default-clean) @ ** ---
[INFO] Deleting /Users/**/Documents/**/projects/**/target
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  0.851 s
[INFO] Finished at: 2024-11-02T15:30:01Z
[INFO] ------------------------------------------------------------------------

解决方案

根据错误日志,以下任一情况都可能是问题

请验证 Album 类中存在的变量 imageUrl

如果此字段已存在,并且您正在使用 IntelliJ IDEA,请检查是否安装了 lombok 插件

该错误信息表明 Maven 编译插件 `maven-compiler-plugin:3.13.0` 在尝试执行编译任务时失败。具体原因是当前使用的 Maven 版本过低,无法支持该版本的插件。Maven 插件通常对 Maven 本身的版本有最低要求,例如此插件要求至少使用 Maven 3.6.3 或更高版本,而用户当时使用的是 Maven 3.6.1,因此导致了执行失败的情况。 解决此类问题的一种方式是升级 Maven 的版本。通过将 Maven 升级到兼容插件需求的版本(如 3.9.6),可以满足插件运行所需的环境条件。完成升级后,还需要更新系统环境变量以及项目中相关的配置文件(如 `settings.xml`)以确保新版本被正确识别和使用[^2]。 此外,除了升级 Maven 本身,也可以考虑以下替代方案: 1. **降低插件版本**:如果由于某些限制无法升级 Maven,可以选择一个与当前 Maven 版本兼容的较旧版本的 `maven-compiler-plugin`。例如,3.8.1 是一个广泛兼容的版本,通常可以在不升级 Maven 的情况下正常工作。 2. **检查 `pom.xml` 配置**:确认 `pom.xml` 文件中关于 `maven-compiler-plugin` 的配置是否正确,包括 Java 编译版本、源码路径等设置是否符合项目需求。 3. **清理 Maven 缓存并重新下载依赖**:有时候本地仓库中的某些依赖可能损坏或不完整,这可能导致构建失败执行 `mvn clean install -U` 命令可以帮助强制更新依赖并清除潜在的问题。 4. **验证 JDK 安装**:确保开发环境中安装的 JDK 版本与 `maven-compiler-plugin` 所需的一致,并且环境变量已正确设置指向有效的 JDK 安装目录。 在进行上述任一更改之后,建议再次尝试构建项目以确认问题是否得到解决。 ```bash # 示例命令用于查看当前Maven版本 mvn -v ``` ```xml <!-- 示例:在pom.xml中指定maven-compiler-plugin版本 --> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿进阶

千言万语都不及一句“谢谢”

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值