编译Thingsboard3.7.0的过程记录

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

CMake是一个跨平台的编译工具,它可以帮助我们更方便地编译和构建软件项目。在编译GDAL 3.7.0时,我们可以使用CMake来配置和生成Makefile,然后再用Make来编译源代码。 首先,我们需要先获取GDAL的源代码,可以从GDAL的官方网站或GitHub上下载。下载完成后,我们将源代码解压到一个目录中。 接下来,我们创建一个新的目录,用于构建GDAL的编译产物。在这个目录下,我们创建一个CMakeLists.txt的文件,用于配置CMake。 在CMakeLists.txt中,我们可以指定GDAL的编译选项和依赖库。例如,我们可以设置GDAL的安装路径、编译类型(Release或Debug)、编译器等。我们还可以指定是否启用特定的功能或模块,如SQLite支持、JPEG支持等。 完成配置后,我们打开终端,进入到刚刚创建的构建目录中。然后执行以下命令生成Makefile: ``` cmake /path/to/source ``` 此处的/path/to/source是GDAL源代码所在的路径。 执行以上命令后,CMake会解析CMakeLists.txt文件,并根据配置生成Makefile。生成成功后,我们可以执行以下命令开始编译GDAL: ``` make ``` make命令会根据生成的Makefile来编译GDAL的源代码。编译完成后,我们可以执行以下命令进行安装: ``` make install ``` make install命令会将编译产物安装到之前配置的安装路径中。 通过以上步骤,我们就可以使用CMake成功地编译GDAL 3.7.0。在实际使用中,我们还可以根据需要进行更多的配置和定制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宁波阿成

你的支持,是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值