在 LoongArch64 (loong64) 龙芯 3B6000 如何编译 seata 分布式事务?

复现环境

在龙芯系统创建 Maven、JDK 25 容器,用于快速复现

docker run -itd --name seata-build registry.cn-qingdao.aliyuncs.com/kubernetesloong64/maven-loong64:3.9.16-25-debian-slim-git
docker exec -it seata-build bash
mvn -v
root@88e40ffc5856:/workspace# mvn -v
Apache Maven 3.9.16 (2bdd9fddda4b155ebf8000e807eb73fd829a51d5)
Maven home: /opt/maven
Java version: 25.0.3, vendor: Loongson, runtime: /opt/java/openjdk-25
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "7.1.3+deb14-loong64", arch: "loongarch64", family: "unix"
root@88e40ffc5856:/workspace# 

修复已知问题

第一次编译打包

命令

mvn -V -e package -DskipTests

问题

[INFO] ------------------------------------------------------------------------
[INFO] Detecting the operating system and CPU architecture
[INFO] ------------------------------------------------------------------------
[INFO] os.detected.name: linux
[INFO] os.detected.arch: unknown
[INFO] os.detected.version: 7.1
[INFO] os.detected.version.major: 7
[INFO] os.detected.version.minor: 1
[ERROR] unknown os.arch: loongarch64 -> [Help 1]
org.apache.maven.MavenExecutionException: unknown os.arch: loongarch64
    at kr.motd.maven.os.DetectExtension.afterProjectsRead (DetectExtension.java:95)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:223)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:919)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:285)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:207)
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:104)
    at java.lang.reflect.Method.invoke (Method.java:565)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:255)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:201)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:362)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:314)
[ERROR] 
[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/MavenExecutionException

解决方案

在本地 Maven 仓库,删除不支持 龙芯 CPU 的 kr.motd.maven:os-maven-plugin

rm -rf ~/.m2/repository/kr/motd/maven
root@3b92fe34a154:/workspace/incubator-seata# find ~/.m2/repository/kr/motd/maven
/root/.m2/repository/kr/motd/maven
/root/.m2/repository/kr/motd/maven/os-maven-plugin
/root/.m2/repository/kr/motd/maven/os-maven-plugin/1.5.0.Final
/root/.m2/repository/kr/motd/maven/os-maven-plugin/1.5.0.Final/_remote.repositories
/root/.m2/repository/kr/motd/maven/os-maven-plugin/1.5.0.Final/os-maven-plugin-1.5.0.Final.jar
/root/.m2/repository/kr/motd/maven/os-maven-plugin/1.5.0.Final/os-maven-plugin-1.5.0.Final.jar.sha1
/root/.m2/repository/kr/motd/maven/os-maven-plugin/1.5.0.Final/os-maven-plugin-1.5.0.Final.pom
/root/.m2/repository/kr/motd/maven/os-maven-plugin/1.5.0.Final/os-maven-plugin-1.5.0.Final.pom.sha1
root@3b92fe34a154:/workspace/incubator-seata# rm -rf ~/.m2/repository/kr/motd/maven
root@3b92fe34a154:/workspace/incubator-seata# 

同时使用 https://maven.loongnix.cn/loongarch/mavenhttps://maven.aliyun.com/repository/public Maven 仓库

  1. 优先级 https://maven.loongnix.cn/loongarch/maven > https://maven.aliyun.com/repository/public
  2. 无法在 settings.xml 中使用 <mirror>,因为 <mirror> 针对于中央仓库 <mirrorOf>central</mirrorOf> 只能使用一个仓库,无法同时使用多个仓库
  3. 需要在 settings.xml 中使用 <profiles>,才能同时启用多个仓库

settings.xml

创建默认 settings.xml 配置

使用 <profiles> 可以同时配置并启用多个仓库

  1. 首先使用 https://maven.loongnix.cn/loongarch/maven 仓库
  2. 如果 https://maven.loongnix.cn/loongarch/maven 仓库依赖不存在,再使用 https://maven.aliyun.com/repository/public 仓库
  3. 如果不按照上述顺序配置仓库,可能会遇见下载的依赖 kr.motd.maven:os-maven-plugincom.github.eirslett:frontend-plugin-corecom.github.eirslett:frontend-maven-plugin 无法识别 CPU 类型。解决方案见:在 LoongArch64 (loong64) 龙芯 3B6000 如何编译 seata 分布式事务? - #2,来自 xuxiaowei
  4. 因为要下载的依赖的仓库 id 都是默认的 central,所以必须在 settings.xml 使用 <profiles>
  5. 如果是不同的 id,可以在 settings.xml 使用 <mirror>

使用 <activeProfiles> 默认激活 <profiles>

mkdir -p ~/.m2

cat <<EOF | tee ~/.m2/settings.xml
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

    <profiles>
        <profile>
            <id>loongarch</id>
            <repositories>
                <repository>
                    <id>loongarch</id>
                    <name>loongarch</name>
                    <url>https://maven.loongnix.cn/loongarch/maven</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                </repository>
                <repository>
                    <id>aliyun</id>
                    <name>aliyun</name>
                    <url>https://maven.aliyun.com/repository/public</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>loongarch</id>
                    <name>loongarch</name>
                    <url>https://maven.loongnix.cn/loongarch/maven</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                </pluginRepository>
                <pluginRepository>
                    <id>aliyun</id>
                    <name>aliyun</name>
                    <url>https://maven.aliyun.com/repository/public</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                </pluginRepository>
            </pluginRepositories>
        </profile>
    </profiles>

    <activeProfiles>
        <activeProfile>loongarch</activeProfile>
    </activeProfiles>
</settings>

EOF

第二次编译打包

命令

mvn -V clean package -DskipTests

问题

[ERROR] Failed to execute goal org.xolstice.maven.plugins:protobuf-maven-plugin:0.6.1:test-compile-custom (default) on project seata-grpc: Unable to resolve artifact: Missing:
[ERROR] ----------
[ERROR] 1) io.grpc:protoc-gen-grpc-java:exe:linux-loongarch_64:1.55.1
[ERROR] 
[ERROR]   Try downloading the file manually from the project website.
[ERROR] 
[ERROR]   Then, install it using the command: 
[ERROR]       mvn install:install-file -DgroupId=io.grpc -DartifactId=protoc-gen-grpc-java -Dversion=1.55.1 -Dclassifier=linux-loongarch_64 -Dpackaging=exe -Dfile=/path/to/file
[ERROR] 
[ERROR]   Alternatively, if you host your own repository you can deploy the file there: 
[ERROR]       mvn deploy:deploy-file -DgroupId=io.grpc -DartifactId=protoc-gen-grpc-java -Dversion=1.55.1 -Dclassifier=linux-loongarch_64 -Dpackaging=exe -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id]
[ERROR] 
[ERROR]   Path to dependency: 
[ERROR]         1) org.apache.seata:seata-grpc:jar:2.8.0-SNAPSHOT
[ERROR]         2) io.grpc:protoc-gen-grpc-java:exe:linux-loongarch_64:1.55.1
[ERROR] 
[ERROR] ----------
[ERROR] 1 required artifact is missing.
[ERROR] 
[ERROR] for artifact: 
[ERROR]   org.apache.seata:seata-grpc:jar:2.8.0-SNAPSHOT
[ERROR] 
[ERROR] from the specified remote repositories:
[ERROR]   loongarch (https://maven.loongnix.cn/loongarch/maven, releases=true, snapshots=false),
[ERROR]   aliyun (https://maven.aliyun.com/repository/public, releases=true, snapshots=false),
[ERROR]   apache.snapshots (https://repository.apache.org/snapshots, releases=false, snapshots=true),
[ERROR]   central (https://repo.maven.apache.org/maven2, releases=true, snapshots=false)
[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/MojoExecutionException
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <args> -rf :seata-grpc
root@88e40ffc5856:/workspace/incubator-seata# 

解决方案

由于 龙芯 https://maven.loongnix.cn/loongarch/maven 仓库的 io.grpc:protoc-gen-grpc-java 版本没有 1.55.1,需要选择已存在的版本,如:1.54.2

相关议题

第三次编译打包

使用参数 -Dgrpc.version=1.54.2 修复上次问题

命令

mvn -V clean package -DskipTests -Dgrpc.version=1.54.2

问题

[INFO] Installing node version v19.5.0
[INFO] Downloading https://unofficial-builds.nodejs.org/download/release/v19.5.0/node-v19.5.0-linux-loong64.tar.gz to /root/.m2/repository/com/github/eirslett/node/19.5.0/node-19.5.0-linux-loong64.tar.gz
[INFO] No proxies configured
[INFO] No proxy was configured, downloading directly
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for Seata Parent POM 2.8.0-SNAPSHOT 2.8.0-SNAPSHOT:
[INFO] 
[INFO] Seata Build 2.8.0-SNAPSHOT ......................... SUCCESS [  1.307 s]
[INFO] Seata Parent POM 2.8.0-SNAPSHOT .................... SUCCESS [  2.280 s]
......
[INFO] json-common-jackson3 2.8.0-SNAPSHOT ................ SUCCESS [  2.339 s]
[INFO] seata-test 2.8.0-SNAPSHOT .......................... SUCCESS [ 17.855 s]
[INFO] seata-console 2.8.0-SNAPSHOT ....................... FAILURE [ 20.303 s]
[INFO] seata-namingserver 2.8.0-SNAPSHOT .................. SKIPPED
[INFO] seata-distribution 2.8.0-SNAPSHOT .................. SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  09:05 min
[INFO] Finished at: 2026-08-09T03:00:28Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.15.0:install-node-and-npm (install node and npm) on project seata-console: Could not download Node.js: Got error code 404 from the server. -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.15.0:install-node-and-npm (install node and npm) on project seata-console: Could not download Node.js: Got error code 404 from the server.
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:333)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:919)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:285)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:207)
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:104)
    at java.lang.reflect.Method.invoke (Method.java:565)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:255)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:201)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:362)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:314)
Caused by: org.apache.maven.plugin.MojoFailureException: Could not download Node.js: Got error code 404 from the server.
    at com.github.eirslett.maven.plugins.frontend.mojo.MojoUtils.toMojoFailureException (MojoUtils.java:28)
    at com.github.eirslett.maven.plugins.frontend.mojo.AbstractFrontendMojo.execute (AbstractFrontendMojo.java:103)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:919)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:285)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:207)
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:104)
    at java.lang.reflect.Method.invoke (Method.java:565)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:255)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:201)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:362)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:314)
Caused by: com.github.eirslett.maven.plugins.frontend.lib.InstallationException: Could not download Node.js
    at com.github.eirslett.maven.plugins.frontend.lib.NodeInstaller.installNodeDefault (NodeInstaller.java:208)
    at com.github.eirslett.maven.plugins.frontend.lib.NodeInstaller.install (NodeInstaller.java:95)
    at com.github.eirslett.maven.plugins.frontend.mojo.InstallNodeAndNpmMojo.execute (InstallNodeAndNpmMojo.java:100)
    at com.github.eirslett.maven.plugins.frontend.mojo.AbstractFrontendMojo.execute (AbstractFrontendMojo.java:94)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:919)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:285)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:207)
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:104)
    at java.lang.reflect.Method.invoke (Method.java:565)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:255)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:201)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:362)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:314)
Caused by: com.github.eirslett.maven.plugins.frontend.lib.DownloadException: Got error code 404 from the server.
    at com.github.eirslett.maven.plugins.frontend.lib.DefaultFileDownloader.download (FileDownloader.java:70)
    at com.github.eirslett.maven.plugins.frontend.lib.NodeInstaller.downloadFile (NodeInstaller.java:338)
    at com.github.eirslett.maven.plugins.frontend.lib.NodeInstaller.downloadFileIfMissing (NodeInstaller.java:331)
    at com.github.eirslett.maven.plugins.frontend.lib.NodeInstaller.installNodeDefault (NodeInstaller.java:141)
    at com.github.eirslett.maven.plugins.frontend.lib.NodeInstaller.install (NodeInstaller.java:95)
    at com.github.eirslett.maven.plugins.frontend.mojo.InstallNodeAndNpmMojo.execute (InstallNodeAndNpmMojo.java:100)
    at com.github.eirslett.maven.plugins.frontend.mojo.AbstractFrontendMojo.execute (AbstractFrontendMojo.java:94)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:919)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:285)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:207)
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:104)
    at java.lang.reflect.Method.invoke (Method.java:565)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:255)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:201)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:362)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:314)
[ERROR] 
[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/MojoFailureException
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <args> -rf :seata-console
root@3b92fe34a154:/workspace/incubator-seata# 

解决方案

https://unofficial-builds.nodejs.org/download/release/ 中下载的支持龙芯架构的 node 没有 v19.5.0 版本,需要选择已存在的版本,如:v20.20.2

相关议题

第四次编译打包:解决所有问题

使用参数 -DnodeVersion=v20.20.2 修复上次问题

由于在 https://unofficial-builds.nodejs.org/download/release/ 下载速度较慢,可以考虑使用 -DnodeDownloadRoot= 修改下载地址

  1. 只要保持自定义下载地址与 https://unofficial-builds.nodejs.org/download/release/ 下载地址规则相同即可
mvn -V clean package -DskipTests -Dgrpc.version=1.54.2 -DnodeVersion=v20.20.2

确保仓库顺序

  1. 第一优先级:https://maven.loongnix.cn/loongarch/maven
  2. 第二优先级:https://maven.aliyun.com/repository/public

删除 frontend-maven-plugin 相关的依赖与 node 版本

删除后,调整正确的仓库顺序后,重新执行编译,即可下载龙芯架构的版本

find ~/.m2/repository/com/github/eirslett/
ls -lah console/src/main/resources/static/console-fe/node
rm -rf /root/.m2/repository/com/github/eirslett/
rm -rf ./console/src/main/resources/static/console-fe/node
root@88e40ffc5856:/workspace/incubator-seata# find ~/.m2/repository/com/github/eirslett/
/root/.m2/repository/com/github/eirslett/
/root/.m2/repository/com/github/eirslett/frontend-maven-plugin
/root/.m2/repository/com/github/eirslett/frontend-maven-plugin/1.15.0
/root/.m2/repository/com/github/eirslett/frontend-maven-plugin/1.15.0/_remote.repositories
/root/.m2/repository/com/github/eirslett/frontend-maven-plugin/1.15.0/frontend-maven-plugin-1.15.0.jar.sha1
/root/.m2/repository/com/github/eirslett/frontend-maven-plugin/1.15.0/frontend-maven-plugin-1.15.0.pom
/root/.m2/repository/com/github/eirslett/frontend-maven-plugin/1.15.0/frontend-maven-plugin-1.15.0.jar
/root/.m2/repository/com/github/eirslett/frontend-maven-plugin/1.15.0/frontend-maven-plugin-1.15.0.pom.sha1
/root/.m2/repository/com/github/eirslett/frontend-plugin-core
/root/.m2/repository/com/github/eirslett/frontend-plugin-core/1.15.0
/root/.m2/repository/com/github/eirslett/frontend-plugin-core/1.15.0/frontend-plugin-core-1.15.0.jar.sha1
/root/.m2/repository/com/github/eirslett/frontend-plugin-core/1.15.0/_remote.repositories
/root/.m2/repository/com/github/eirslett/frontend-plugin-core/1.15.0/frontend-plugin-core-1.15.0.pom
/root/.m2/repository/com/github/eirslett/frontend-plugin-core/1.15.0/frontend-plugin-core-1.15.0.pom.sha1
/root/.m2/repository/com/github/eirslett/frontend-plugin-core/1.15.0/frontend-plugin-core-1.15.0.jar
/root/.m2/repository/com/github/eirslett/frontend-plugins
/root/.m2/repository/com/github/eirslett/frontend-plugins/1.15.0
/root/.m2/repository/com/github/eirslett/frontend-plugins/1.15.0/_remote.repositories
/root/.m2/repository/com/github/eirslett/frontend-plugins/1.15.0/frontend-plugins-1.15.0.pom
/root/.m2/repository/com/github/eirslett/frontend-plugins/1.15.0/frontend-plugins-1.15.0.pom.sha1
/root/.m2/repository/com/github/eirslett/node
/root/.m2/repository/com/github/eirslett/node/20.20.2
/root/.m2/repository/com/github/eirslett/node/20.20.2/node-20.20.2-linux-loong64.tar.gz
root@88e40ffc5856:/workspace/incubator-seata# 
root@88e40ffc5856:/workspace/incubator-seata# ls -lah console/src/main/resources/static/console-fe/node
total 95M
drwxr-xr-x 3 root root 4.0K Jul 28 20:35 .
drwxr-xr-x 9 root root 4.0K Jul 28 20:35 ..
-rwxr-xr-x 1 root root  95M Jul 28 20:35 node
drwxr-xr-x 4 root root 4.0K Jul 28 20:35 node_modules
-rwxr--r-- 1 root root 2.1K Jul 28 20:35 npm
-rwxr--r-- 1 root root  538 Jul 28 20:35 npm.cmd
-rwxr--r-- 1 root root 2.1K Jul 28 20:35 npx
-rwxr--r-- 1 root root  538 Jul 28 20:35 npx.cmd
root@88e40ffc5856:/workspace/incubator-seata#