1、首先去掉test测试,否则会有一堆问题,pom.xml修改如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${surefire.version}</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
2、同时要配置gradle7.3.3,另外下载gradle-tooling-api-7.3.3.jar(可以通过下载gradle里找出来)
同时通过下面方式上传到你自己本地的maven库里
mvn install:install-file "-Dmaven.repo.local=E:\stsm2\repository" "-DgroupId=org.gradle" "-DartifactId=gradle-tooling-api" "-Dversion=7.3.3" "-Dpackaging=jar" "-Dfile=E:\gradle-tooling-api-7.3.3.jar"
也可以到https://mvnrepository.com/下载gradle-tooling-api-7.3.3.jar
3、这个版本是用java17
4、编译出现下面错误
[INFO] Thingsboard Server JS Client for remote JS execution SUCCESS [ 2.224 s]
[INFO] Thingsboard Server DAO Layer ....................... SUCCESS [ 20.653 s]
[INFO] Thingsboard Rule Engine Components ................. SUCCESS [ 11.866 s]
[INFO] Thingsboard Server Transport Modules ............... SUCCESS [ 0.032 s]
[INFO] Thingsboard HTTP Transport Service ................. FAILURE [ 3.383 s]
[INFO] Thingsboard MQTT Transport Service ................. SKIPPED
[INFO] Thingsboard CoAP Transport Service ................. SKIPPED
[INFO] Thingsboard LwM2m Transport Service ................ SKIPPED
[INFO] Thingsboard SNMP Transport Service ................. SKIPPED
[INFO] ThingsBoard Server UI .............................. SKIPPED
[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: 02:59 min
[INFO] Finished at: 2024-09-29T09:56:04+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.thingsboard:gradle-maven-plugin:1.0.12:invoke (default) on project http: Execution default of goal org.thingsboard:gradle-maven-plugin:1.0.12:invoke failed: A required class was missing while executing org.thingsboard:gradle-maven-plugin:1.0.12:invoke: org/gradle/internal/service/DefaultServiceRegistry
[ERROR] -----------------------------------------------------
[ERROR] realm = plugin>org.thingsboard:gradle-maven-plugin:1.0.12
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
5、主要原因就是 找不到类 org/gradle/internal/service/DefaultServiceRegistry
原因找不到,不知道是什么原因,后来还是用它自己下载的gradle编译才能成功
6、ui-ngx的pom.xml里去掉下面内容,因为也下载不下来,自己手动操作
<executions>
<execution>
<id>install node and npm</id>
<goals>
<goal>install-node-and-yarn</goal>
</goals>
<configuration>
<nodeVersion>v20.11.1</nodeVersion>
<yarnVersion>v1.22.17</yarnVersion>
</configuration>
</execution>
<execution>
<id>yarn install</id>
<goals>
<goal>yarn</goal>
</goals>
<configuration>
<arguments>install --non-interactive --network-concurrency 4 --network-timeout 100000 --mutex network</arguments>
</configuration>
</execution>
</executions>
<executions>
<execution>
<id>yarn build</id>
<goals>
<goal>yarn</goal>
</goals>
<configuration>
<arguments>run build:prod</arguments>
</configuration>
</execution>
</executions>
8、到ui-ngx里自己用
yarn install
yarn run build:prod
9、之前编译出现下面错误
[[1;34mINFO[m] Thingsboard Extensions ............................. [1;32mSUCCESS[m [ 0.143 s]
[[1;34mINFO[m] Thingsboard Rule Engine API ........................ [1;32mSUCCESS[m [ 2.339 s]
[[1;34mINFO[m] Thingsboard Server JS Client for remote JS execution [1;32mSUCCESS[m [ 1.052 s]
[[1;34mINFO[m] Thingsboard Server DAO Layer ....................... [1;32mSUCCESS[m [ 13.171 s]
[[1;34mINFO[m] Thingsboard Rule Engine Components ................. [1;32mSUCCESS[m [ 9.574 s]
[[1;34mINFO[m] Thingsboard Server Transport Modules ............... [1;32mSUCCESS[m [ 0.030 s]
[[1;34mINFO[m] Thingsboard HTTP Transport Service ................. [1;31mFAILURE[m [01:09 min]
[[1;34mINFO[m] Thingsboard MQTT Transport Service ................. [1;33mSKIPPED[m
[[1;34mINFO[m] Thingsboard CoAP Transport Service ................. [1;33mSKIPPED[m
[[1;34mINFO[m] Thingsboard LwM2m Transport Service ................ [1;33mSKIPPED[m
[[1;34mINFO[m] Thingsboard SNMP Transport Service ................. [1;33mSKIPPED[m
[[1;34mINFO[m] ThingsBoard Server UI .............................. [1;33mSKIPPED[m
[[1;34mINFO[m] Thingsboard Server Tools ........................... [1;33mSKIPPED[m
[[1;34mINFO[m] Thingsboard Rest Client ............................ [1;33mSKIPPED[m
[[1;34mINFO[m] ThingsBoard Server Application ..................... [1;33mSKIPPED[m
[[1;34mINFO[m] ThingsBoard Microservices .......................... [1;33mSKIPPED[m
[[1;34mINFO[m] ThingsBoard Docker Images .......................... [1;33mSKIPPED[m
[[1;34mINFO[m] ThingsBoard Web UI Microservice .................... [1;33mSKIPPED[m
[[1;34mINFO[m] ThingsBoard Version Control Executor ............... [1;33mSKIPPED[m
[[1;34mINFO[m] ThingsBoard Version Control Executor Microservice .. [1;33mSKIPPED[m
[[1;34mINFO[m] ThingsBoard Node Microservice ...................... [1;33mSKIPPED[m
[[1;34mINFO[m] ThingsBoard Transport Microservices ................ [1;33mSKIPPED[m
[[1;34mINFO[m] ThingsBoard MQTT Transport Microservice ............ [1;33mSKIPPED[m
[[1;34mINFO[m] ThingsBoard HTTP Transport Microservice ............ [1;33mSKIPPED[m
[[1;34mINFO[m] ThingsBoard COAP Transport Microservice ............ [1;33mSKIPPED[m
[[1;34mINFO[m] ThingsBoard LWM2M Transport Microservice ........... [1;33mSKIPPED[m
[[1;34mINFO[m] ThingsBoard SNMP Transport Microservice ............ [1;33mSKIPPED[m
[[1;34mINFO[m] ThingsBoard JavaScript Executor Microservice ....... [1;33mSKIPPED[m
[[1;34mINFO[m] ThingsBoard Monitoring Service ..................... [1;33mSKIPPED[m
[[1;34mINFO[m] ThingsBoard Monitoring Microservice ................ [1;33mSKIPPED[m
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;34mINFO[m] [1;31mBUILD FAILURE[m
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;34mINFO[m] Total time: 03:12 min
[[1;34mINFO[m] Finished at: 2024-09-30T13:13:19+08:00
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;31mERROR[m] Failed to execute goal [32morg.thingsboard:gradle-maven-plugin:1.0.12:invoke[m [1m(default)[m on project [36mhttp[m: [1;31morg.gradle.tooling.GradleConnectionException: Could not install Gradle distribution from 'https://services.gradle.org/distributions/gradle-7.3.3-bin.zip'.[m -> [1m[Help 1][m
[[1;31mERROR[m]
[[1;31mERROR[m] To see the full stack trace of the errors, re-run Maven with the [1m-e[m switch.
[[1;31mERROR[m] Re-run Maven using the [1m-X[m switch to enable full debug logging.
[[1;31mERROR[m]
[[1;31mERROR[m] For more information about the errors and possible solutions, please read the following articles:
[[1;31mERROR[m] [1m[Help 1][m http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[[1;31mERROR[m]
[[1;31mERROR[m] After correcting the problems, you can resume the build with the command
<groupId>org.thingsboard</groupId>
<artifactId>gradle-maven-plugin</artifactId>
<configuration>
<gradleProjectDirectory>${main.dir}/packaging/${pkg.type}</gradleProjectDirectory>
<gradleDistribution>https://mirrors.cloud.tencent.com/gradle/gradle-7.3.3-bin.zip</gradleDistribution>
<gradleInstallationDir>D:\\gradle7.3.3</gradleInstallationDir>
<tasks>
<task>build</task>
<task>buildDeb</task>
<task>buildRpm</task>
</tasks>
<args>
必须要用它下载的gradle来编译才行,否则自己搞个环境gradle7.3.3老是报下面错误
Execution default of goal org.thingsboard:gradle-maven-plugin:1.0.12:invoke failed: A required class was missing while executing org.thingsboard:gradle-maven-plugin:1.0.12:invoke: org/gradle/internal/service/DefaultServiceRegistry
9、上面解决后,出现下面错误,就是web-ui模块出现问题,因为要下载yarn进行打包等,删除掉了,所以少了东西,需要手工自己进行下载yarn,打包了
[[1;34mINFO[m] ThingsBoard Docker Images .......................... [1;32mSUCCESS[m [ 2.426 s]
[[1;34mINFO[m] ThingsBoard Web UI Microservice .................... [1;31mFAILURE[m [ 1.345 s]
[[1;34mINFO[m] ThingsBoard Version Control Executor ............... [1;33mSKIPPED[m
[[1;34mINFO[m] ThingsBoard Version Control Executor Microservice .. [1;33mSKIPPED[m
[[1;34mINFO[m] ThingsBoard Node Microservice ...................... [1;33mSKIPPED[m
[[1;34mINFO[m] ThingsBoard Transport Microservices ................ [1;33mSKIPPED[m
[[1;34mINFO[m] ThingsBoard MQTT Transport Microservice ............ [1;33mSKIPPED[m
[[1;34mINFO[m] ThingsBoard HTTP Transport Microservice ............ [1;33mSKIPPED[m
[[1;34mINFO[m] ThingsBoard COAP Transport Microservice ............ [1;33mSKIPPED[m
[[1;34mINFO[m] ThingsBoard LWM2M Transport Microservice ........... [1;33mSKIPPED[m
[[1;34mINFO[m] ThingsBoard SNMP Transport Microservice ............ [1;33mSKIPPED[m
[[1;34mINFO[m] ThingsBoard JavaScript Executor Microservice ....... [1;33mSKIPPED[m
[[1;34mINFO[m] ThingsBoard Monitoring Service ..................... [1;33mSKIPPED[m
[[1;34mINFO[m] ThingsBoard Monitoring Microservice ................ [1;33mSKIPPED[m
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;34mINFO[m] [1;31mBUILD FAILURE[m
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;34mINFO[m] Total time: 06:14 min
[[1;34mINFO[m] Finished at: 2024-09-30T14:55:03+08:00
[[1;34mINFO[m] [1m------------------------------------------------------------------------[m
[[1;31mERROR[m] Failed to execute goal [32morg.apache.maven.plugins:maven-assembly-plugin:3.0.0:single[m [1m(assembly)[m on project [36mweb-ui[m: [1;31mFailed to create assembly: Error adding file to archive: E:\test\thingsboard-master\msa\web-ui\target\package\windows\bin\tb-web-ui.exe[m -> [1m[Help 1][m
[[1;31mERROR[m]
[[1;31mERROR[m] To see the full stack trace of the errors, re-run Maven with the [1m-e[m switch.
[[1;31mERROR[m] Re-run Maven using the [1m-X[m switch to enable full debug logging.
[[1;31mERROR[m]
[[1;31mERROR[m] For more information about the errors and possible solutions, please read the following articles:
[[1;31mERROR[m] [1m[Help 1][m http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[[1;31mERROR[m]
[[1;31mERROR[m] After correcting the problems, you can resume the build with the command
[[1;31mERROR[m] [1mmvn <args> -rf :web-ui
打包如下,半天下载不下来,看来又要手工去下载了。放到PKG_CACHE_PATH里:
E:\test\thingsboard-master\msa\web-ui>yarn pkg
yarn run v1.21.1
$ tsc && pkg -t node16-linux-x64,node16-win-x64 --out-path ./target ./target/src && node install.js
> pkg@5.8.1
> Fetching base Node.js binaries to PKG_CACHE_PATH
fetched-v16.16.0-linux-x64 [ ] 1%
需要放在这个地方,只有手工下载3.4版本了从在 Releases · vercel/pkg-fetch · GitHub 找到 v3.4下载
10、下载后修改如下的名称才行,总共需要下载4个,如下修改名称
11、这样总算编译成功
附:重新自动编译mvn clean install -DskipTests
删除maven下载有问题的包库文件,以便下次正确下载
for /r %i in (*.lastUpdated) do del %i