热爱技术,追求卓越
不断求索,精益求精

【3】Trae使用Maven编译项目报错,在外部命令行编译即可

从0开始搭建后台管理系统,这是No3,上一篇我们讲到了Trae创建Maven多module的spring boot项目。这一节我们来说说在Trae中如何用Maven编译我们的项目。

接着上一篇,我们点击main方法上的Run能正常运行。我门尝试用maven命令编译下,看会不会成功。打开终端,在终端中输入如下命令:

mvn package

报错如下:

[INFO] yuen ............................................... FAILURE [  0.272 s]
[INFO] yuen-framework ..................................... SKIPPED
[INFO] yuen-app ........................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  0.411 s
[INFO] Finished at: 2025-12-20T10:39:46+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:3.5.9:repackage (repackage) on project yuen: Execution repackage of goal org.springframework.boot:spring-boot-maven-plugin:3.5.9:repackage failed: Unable to load the mojo 'repackage' in the plugin 'org.springframework.boot:spring-boot-maven-plugin:3.5.9' due to an API incompatibility: org.codehaus.plexus.component.repository.exception.ComponentLookupException: org/springframework/boot/maven/RepackageMojo has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0
[ERROR] -----------------------------------------------------
[ERROR] realm =    plugin>org.springframework.boot:spring-boot-maven-plugin:3.5.9
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/C:/Users/ASUS/.m2/repository/org/springframework/boot/spring-boot-maven-plugin/3.5.9/spring-boot-maven-plugin-3.5.9.jar
[ERROR] urls[1] = file:/C:/Users/ASUS/.m2/repository/org/springframework/boot/spring-boot-buildpack-platform/3.5.9/spring-boot-buildpack-platform-3.5.9.jar
[ERROR] urls[2] = file:/C:/Users/ASUS/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.19.4/jackson-databind-2.19.4.jar
[ERROR] urls[3] = file:/C:/Users/ASUS/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.19.4/jackson-annotations-2.19.4.jar
[ERROR] urls[4] = file:/C:/Users/ASUS/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.19.4/jackson-core-2.19.4.jar    
[ERROR] urls[5] = file:/C:/Users/ASUS/.m2/repository/com/fasterxml/jackson/module/jackson-module-parameter-names/2.19.4/jackson-module-parameter-names-2.19.4.jar
[ERROR] urls[6] = file:/C:/Users/ASUS/.m2/repository/net/java/dev/jna/jna-platform/5.17.0/jna-platform-5.17.0.jar
[ERROR] urls[7] = file:/C:/Users/ASUS/.m2/repository/net/java/dev/jna/jna/5.17.0/jna-5.17.0.jar
[ERROR] urls[8] = file:/C:/Users/ASUS/.m2/repository/org/apache/commons/commons-compress/1.27.1/commons-compress-1.27.1.jar    
[ERROR] urls[9] = file:/C:/Users/ASUS/.m2/repository/commons-codec/commons-codec/1.17.1/commons-codec-1.17.1.jar
[ERROR] urls[10] = file:/C:/Users/ASUS/.m2/repository/org/apache/commons/commons-lang3/3.16.0/commons-lang3-3.16.0.jar
[ERROR] urls[11] = file:/C:/Users/ASUS/.m2/repository/org/apache/httpcomponents/client5/httpclient5/5.5.1/httpclient5-5.5.1.jar
[ERROR] urls[12] = file:/C:/Users/ASUS/.m2/repository/org/apache/httpcomponents/core5/httpcore5/5.3.6/httpcore5-5.3.6.jar      
[ERROR] urls[13] = file:/C:/Users/ASUS/.m2/repository/org/apache/httpcomponents/core5/httpcore5-h2/5.3.6/httpcore5-h2-5.3.6.jar
[ERROR] urls[14] = file:/C:/Users/ASUS/.m2/repository/org/tomlj/tomlj/1.0.0/tomlj-1.0.0.jar
[ERROR] urls[15] = file:/C:/Users/ASUS/.m2/repository/org/antlr/antlr4-runtime/4.7.2/antlr4-runtime-4.7.2.jar
[ERROR] urls[16] = file:/C:/Users/ASUS/.m2/repository/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar
[ERROR] urls[17] = file:/C:/Users/ASUS/.m2/repository/org/springframework/boot/spring-boot-loader-tools/3.5.9/spring-boot-loader-tools-3.5.9.jar
[ERROR] urls[18] = file:/C:/Users/ASUS/.m2/repository/org/apache/maven/shared/maven-common-artifact-filters/3.4.0/maven-common-artifact-filters-3.4.0.jar
[ERROR] urls[19] = file:/C:/Users/ASUS/.m2/repository/org/sonatype/plexus/plexus-build-api/0.0.7/plexus-build-api-0.0.7.jar    
[ERROR] urls[20] = file:/C:/Users/ASUS/.m2/repository/org/springframework/spring-core/6.2.15/spring-core-6.2.15.jar
[ERROR] urls[21] = file:/C:/Users/ASUS/.m2/repository/org/springframework/spring-jcl/6.2.15/spring-jcl-6.2.15.jar
[ERROR] urls[22] = file:/C:/Users/ASUS/.m2/repository/org/springframework/spring-context/6.2.15/spring-context-6.2.15.jar      
[ERROR] urls[23] = file:/C:/Users/ASUS/.m2/repository/org/springframework/spring-aop/6.2.15/spring-aop-6.2.15.jar
[ERROR] urls[24] = file:/C:/Users/ASUS/.m2/repository/org/springframework/spring-beans/6.2.15/spring-beans-6.2.15.jar
[ERROR] urls[25] = file:/C:/Users/ASUS/.m2/repository/org/springframework/spring-expression/6.2.15/spring-expression-6.2.15.jar
[ERROR] urls[26] = file:/C:/Users/ASUS/.m2/repository/io/micrometer/micrometer-observation/1.14.14/micrometer-observation-1.14.14.jar
[ERROR] urls[27] = file:/C:/Users/ASUS/.m2/repository/io/micrometer/micrometer-commons/1.14.14/micrometer-commons-1.14.14.jar  
[ERROR] urls[28] = file:/C:/Users/ASUS/.m2/repository/org/apache/maven/plugins/maven-shade-plugin/3.6.0/maven-shade-plugin-3.6.0.jar
[ERROR] urls[29] = file:/C:/Users/ASUS/.m2/repository/org/codehaus/plexus/plexus-utils/3.5.1/plexus-utils-3.5.1.jar
[ERROR] urls[30] = file:/C:/Users/ASUS/.m2/repository/org/ow2/asm/asm/9.7/asm-9.7.jar
[ERROR] urls[31] = file:/C:/Users/ASUS/.m2/repository/org/ow2/asm/asm-commons/9.7/asm-commons-9.7.jar
[ERROR] urls[32] = file:/C:/Users/ASUS/.m2/repository/org/ow2/asm/asm-tree/9.7/asm-tree-9.7.jar
[ERROR] urls[33] = file:/C:/Users/ASUS/.m2/repository/org/jdom/jdom2/2.0.6.1/jdom2-2.0.6.1.jar
[ERROR] urls[34] = file:/C:/Users/ASUS/.m2/repository/commons-io/commons-io/2.16.1/commons-io-2.16.1.jar
[ERROR] urls[35] = file:/C:/Users/ASUS/.m2/repository/org/vafer/jdependency/2.10/jdependency-2.10.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import  from realm ClassRealm[maven.api, parent: null]]
[ERROR]
[ERROR] -----------------------------------------------------
[ERROR]
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginContainerException

我们接下来在命令行输入如下命令:

java -version

显示如下内容:

java version "1.8.0_471"
Java(TM) SE Runtime Environment (build 1.8.0_471-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.471-b09, mixed mode)

说明我们环境变量的jdk版本是1.8,但是我们在上一篇中选择的java版本是17,也就是要用jdk17。接下来我们在主项目的.vscode目录下,新建一个settings.json文件,添加如下内容:

{
  "java.home": "D:\\dev\\java\\JDK17",
  "java.configuration.runtimes": [
    {
      "name": "JavaSE-17",
      "path": "D:\\dev\\java\\JDK17"
    }
  ]
}

注意,jdk目录是自己安装的目录,我这里是“D:\dev\java\JDK17”。

再执行

mvn package

还是不行,一样的报错。修改环境变量JAVA_HOME,指向JDK17所在目录。

关闭Trae后再重新打开,输入

java -version

还是jdk1.8,在windows的命令提示符工具输命令,显示如下:

C:\Users\ASUS>java -version
java version "17.0.9" 2023-10-17 LTS
Java(TM) SE Runtime Environment Oracle GraalVM 17.0.9+11.1 (build 17.0.9+11-LTS-jvmci-23.0-b21)
Java HotSpot(TM) 64-Bit Server VM Oracle GraalVM 17.0.9+11.1 (build 17.0.9+11-LTS-jvmci-23.0-b21, mixed mode, sharing)

已经变为17了,说明Trae开发工具有点问题。关闭Trae,再打开,输入命令,还是一样。暂时没找到解决方案,先放置放置。

我在项目目录中打开命令行工具,执行

 mvn package

最后编译成功,如下:

[INFO] Replacing main artifact F:\dev\code\myself\yuen\yuen\target\yuen-0.0.1-SNAPSHOT.jar with repackaged archive, adding nested dependencies in BOOT-INF/.
[INFO] The original artifact has been renamed to F:\dev\code\myself\yuen\yuen\target\yuen-0.0.1-SNAPSHOT.jar.original
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  01:17 min
[INFO] Finished at: 2025-12-20T12:02:59+08:00
[INFO] ------------------------------------------------------------------------

windows下切换jdk版本,还可以尝试用jenv配置管理jdk,有兴趣的可尝试。

我使用vscode打开项目,执行相同的操作,成功如下:

[INFO] Reactor Summary for yuen 0.0.1-SNAPSHOT:
[INFO]
[INFO] yuen ............................................... SUCCESS [  0.245 s]
[INFO] yuen-framework ..................................... SUCCESS [  0.011 s]
[INFO] yuen-app ........................................... SUCCESS [  1.785 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  2.176 s
[INFO] Finished at: 2025-12-20T12:12:56+08:00
[INFO] ------------------------------------------------------------------------

Trae的用法和vscode的用户差不多,后续可在vscode编译,也可在操作系统命令行工具编译。

赞(0)
未经允许不得转载:LoveCTO » 【3】Trae使用Maven编译项目报错,在外部命令行编译即可

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

热爱技术 追求卓越 精益求精