编译ThingsBoard源码时Server UI环节Yarn解压重命名失败求助
编译ThingsBoard源码时UI环节Yarn解压报错的解决方法
问题描述
编译GitHub上的ThingsBoard 3.5.1源码,执行到Server UI(ui-ngx模块)环节时触发报错:
[ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.12.0:install-node-and-yarn (install node and npm) on project ui-ngx: Could not extract the Yarn archive: Could not rename versioned yarn root directory to dist
已尝试手动下载Yarn放置到对应目录,但问题未解决。
编译日志
[INFO] [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ ui-ngx --- [INFO] Deleting E:\IIOT\thingsboard\ui-ngx\target [INFO] [INFO] --- frontend-maven-plugin:1.12.0:install-node-and-yarn (install node and npm) @ ui-ngx --- [INFO] Installing node version v18.16.0 [INFO] Copying node binary from C:\Users\AlexFu\.m2\repository\com\github\eirslett\node\18.16.0\node-18.16.0-win-x64.exe to E:\IIOT\thingsboard\ui-ngx\target\node\node.exe [INFO] Installed node locally. [INFO] Installing Yarn version v1.22.19 [INFO] Unpacking C:\Users\AlexFu\.m2\repository\com\github\eirslett\yarn\1.22.19\yarn-1.22.19.tar.gz into E:\IIOT\thingsboard\ui-ngx\target\node\yarn [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary for Thingsboard 3.5.1: [INFO] [INFO] Thingsboard ........................................ SUCCESS [ 0.047 s] [INFO] Netty MQTT Client .................................. SUCCESS [ 1.900 s] [INFO] Thingsboard Server Commons ......................... SUCCESS [ 0.002 s] [INFO] Thingsboard Server Common Data ..................... SUCCESS [ 4.682 s] [INFO] Thingsboard Server Common Utils .................... SUCCESS [ 0.692 s] [INFO] Thingsboard Server Common Messages ................. SUCCESS [ 1.715 s] [INFO] Thingsboard Actor system ........................... SUCCESS [ 0.882 s] [INFO] Thingsboard Server Stats ........................... SUCCESS [ 0.296 s] [INFO] Thingsboard Server Common Cluster API .............. SUCCESS [ 6.486 s] [INFO] Thingsboard Server Queue components ................ SUCCESS [ 2.011 s] [INFO] Thingsboard Server Common Cache .................... SUCCESS [ 0.717 s] [INFO] Thingsboard Server Commons ......................... SUCCESS [ 0.002 s] [INFO] Thingsboard Server Common Transport components ..... SUCCESS [ 2.392 s] [INFO] Thingsboard MQTT Transport Common .................. SUCCESS [ 2.362 s] [INFO] Thingsboard HTTP Transport Common .................. SUCCESS [ 0.541 s] [INFO] Thingsboard CoAP server ............................ SUCCESS [ 0.523 s] [INFO] Thingsboard CoAP Transport Common .................. SUCCESS [ 1.449 s] [INFO] Thingsboard LwM2M Transport Common ................. SUCCESS [ 1.412 s] [INFO] Thingsboard SNMP Transport Common .................. SUCCESS [ 1.026 s] [INFO] Thingsboard Server Common DAO API .................. SUCCESS [ 0.782 s] [INFO] Thingsboard Server Remote Edge wrapper ............. SUCCESS [ 2.683 s] [INFO] Thingsboard Server Version Control API ............. SUCCESS [ 0.629 s] [INFO] Thingsboard Script Invoke Commons .................. SUCCESS [ 0.002 s] [INFO] Thingsboard Server Script invoke API ............... SUCCESS [ 0.784 s] [INFO] Thingsboard Extensions ............................. SUCCESS [ 0.002 s] [INFO] Thingsboard Rule Engine API ........................ SUCCESS [ 0.937 s] [INFO] Thingsboard Server JS Client for remote JS execution SUCCESS [ 1.202 s] [INFO] Thingsboard Server DAO Layer ....................... SUCCESS [ 4.855 s] [INFO] Thingsboard Rule Engine Components ................. SUCCESS [ 3.681 s] [INFO] Thingsboard Server Transport Modules ............... SUCCESS [ 0.004 s] [INFO] Thingsboard HTTP Transport Service ................. SUCCESS [ 15.605 s] [INFO] Thingsboard MQTT Transport Service ................. SUCCESS [ 12.030 s] [INFO] Thingsboard CoAP Transport Service ................. SUCCESS [ 11.370 s] [INFO] Thingsboard LwM2m Transport Service ................ SUCCESS [ 14.500 s] [INFO] Thingsboard SNMP Transport Service ................. SUCCESS [ 11.576 s] [INFO] ThingsBoard Server UI .............................. FAILURE [ 0.117 s] [INFO] Thingsboard Server Tools ........................... SKIPPED [INFO] Thingsboard Rest Client ............................ SKIPPED [INFO] ThingsBoard Server Application ..................... SKIPPED [INFO] ThingsBoard Microservices .......................... SKIPPED [INFO] ThingsBoard Docker Images .......................... SKIPPED [INFO] ThingsBoard Web UI Microservice .................... SKIPPED [INFO] ThingsBoard Version Control Executor ............... SKIPPED [INFO] ThingsBoard Version Control Executor Microservice .. SKIPPED [INFO] ThingsBoard Node Microservice ...................... SKIPPED [INFO] ThingsBoard Transport Microservices ................ SKIPPED [INFO] ThingsBoard MQTT Transport Microservice ............ SKIPPED [INFO] ThingsBoard HTTP Transport Microservice ............ SKIPPED [INFO] ThingsBoard COAP Transport Microservice ............ SKIPPED [INFO] ThingsBoard LWM2M Transport Microservice ........... SKIPPED [INFO] ThingsBoard SNMP Transport Microservice ............ SKIPPED [INFO] ThingsBoard JavaScript Executor Microservice ....... SKIPPED [INFO] ThingsBoard Monitoring Service ..................... SKIPPED [INFO] ThingsBoard Monitoring Microservice ................ SKIPPED [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 01:50 min [INFO] Finished at: 2023-07-12T16:40:17+08:00 [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.12.0:install-node-and-yarn (install node and npm) on project ui-ngx: Could not extract the Yarn archive: Could not rename versioned yarn root directory to dist -> [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/MojoFailureException [ERROR] [ERROR] After correcting the problems, you can resume the build with the command [ERROR] mvn <args> -rf :ui-ngx
原因分析
- Windows环境下,
frontend-maven-plugin解压Yarn后重命名目录时,可能遭遇权限不足、目录被进程(如杀毒软件)锁定,或解压后的目录结构不符合插件预期 - 手动放置Yarn时,未匹配插件要求的目录结构,或插件仍尝试覆盖自动下载的文件,引发冲突
解决方案
方案1:清理缓存并重新构建
- 删除Maven仓库中Yarn的缓存目录:
C:\Users\AlexFu\.m2\repository\com\github\eirslett\yarn\1.22.19 - 删除ui-ngx模块的target目录:
E:\IIOT\thingsboard\ui-ngx\target - 以管理员权限启动命令行,进入项目根目录执行:
mvn clean install -rf :ui-ngx
方案2:跳过自动安装,使用全局版本
- 在系统中全局安装Node v18.16.0和Yarn v1.22.19
- 修改
ui-ngx/pom.xml中frontend-maven-plugin的配置,添加参数让插件使用全局版本:
<configuration> <nodeVersion>v18.16.0</nodeVersion> <yarnVersion>v1.22.19</yarnVersion> <installNode>false</installNode> <installYarn>false</installYarn> </configuration>
- 执行构建命令:
mvn clean install -rf :ui-ngx
方案3:手动调整Yarn目录结构
- 下载Yarn v1.22.19的tar.gz包,解压得到
yarn-v1.22.19目录 - 将该目录重命名为
dist,复制到E:\IIOT\thingsboard\ui-ngx\target\node\yarn下 - 确保
dist/bin目录包含yarn.cmd等可执行文件 - 执行构建命令:
mvn clean install -rf :ui-ngx
内容的提问来源于stack exchange,提问作者AlexFu
相关产品推荐
相关产品推荐

