用例执行过程中,提示“IllegalArgumentException :this version does not support 32Bit”。
编译过程中依赖的第三方包de.flapdoodle.embed.process-2.1.2.jar和de.flapdoodle.embed.mongo-2.2.0.jar并不支持ARM架构。需要下载并适配支持ARM64架构的mongo和process两个jar包。
wget https://mirrors.huaweicloud.com/kunpeng/maven/de/flapdoodle/embed/de.flapdoodle.embed.mongo/2.2.0/de.flapdoodle.embed.mongo-2.2.0.jar wget https://mirrors.huaweicloud.com/kunpeng/maven/de/flapdoodle/embed/de.flapdoodle.embed.process/2.1.2/de.flapdoodle.embed.process-2.1.2.jar
ARM64架构的mongo和process两个JAR包也可参考《de.flapdoodle.embed.mongo-2.2.0.jar移植指南》和《de.flapdoodle.embed.process-2.1.2.jar移植指南》自行编译进行替换。
mkdir -p /root/.m2/repository/de/flapdoodle/embed/de.flapdoodle.embed.mongo/2.2.0 mkdir -p /root/.m2/repository/de/flapdoodle/embed/de.flapdoodle.embed.process/2.1.2
\cp de.flapdoodle.embed.mongo-2.2.0.jar /root/.m2/repository/de/flapdoodle/embed/de.flapdoodle.embed.mongo/2.2.0 \cp de.flapdoodle.embed.process-2.1.2.jar /root/.m2/repository/de/flapdoodle/embed/de.flapdoodle.embed.process/2.1.2
cd spring-boot-project/spring-boot-autoconfigure sed -i "s/3\.5\.5/4\.0\.12/g" `grep -rl "3\.5\.5"` sed -i "s/3\.4\.1/4\.0\.12/g" `grep -rl "3\.4\.1"` sed -i "s/3_4_15/4_0_12/g" `grep -rl "3_4_15"` cd ../../
mkdir -p /root/.embedmongo/extracted/Linux-B64--4.0.12
\cp /usr/local/mongo/bin/mongod /root/.embedmongo/extracted/Linux-B64--4.0.12 && mv /root/.embedmongo/extracted/Linux-B64--4.0.12/mongod /root/.embedmongo/extracted/Linux-B64--4.0.12/extractmongod
如果使用了其他版本的MongoDB,则de.flapdoodle.embed.mongo-2.2.0.jar需要参见《de.flapdoodle.embed.mongo-2.2.0.jar 移植指南》自行编译并替换,否则可能会由于版本不同而导致报错。
vim ./spring-boot-project/spring-boot-autoconfigure//src/main/java/org/springframework/boot/autoconfigure/mongo/embedded/EmbeddedMongoAutoConfiguration.java
import de.flapdoodle.embed.mongo.config.MongoCmdOptionsBuilder;
if (replSetName != null) { MongoCmdOptionsBuilder optionsBuilder = new MongoCmdOptionsBuilder(); optionsBuilder.useNoJournal(false); builder.cmdOptions(optionsBuilder.build()); }
请使用:set list检查格式。不能出现空格,请使用Tab作为代码缩进。