idea 编译打包nacos2.0.3源码,生成可执行jar 包常见问题

发布于:2025-03-19 ⋅ 阅读:(13) ⋅ 点赞:(0)

目录

问题1

问题2

问题3

问题4


简单记录一下nacos2.0.3,编译打包的步骤,首先下载源码,免积分下载:

nacos源码:

https://download.csdn.net/download/fyihdg/90461118

protoc 安装包

https://download.csdn.net/download/fyihdg/90492686

下载完成后,导入idea 会有各种问题,本文只记录一些常见的问题

naocs的路径,不要有中文或空格路径,否则会报一些错误:

问题1

istios模块下实体类报编译错误,原因是protoc 没有安装,本地安装对应的版本,nacos源码使用版本:

安装成功后,输入命令检查 

protoc --version

我们就安装对应的版本,如果是弹出这个界面,就证明安装成功

再次编译才会成功

问题2

Caused by: java.lang.IllegalStateException: Fail to init node, please see the logs to find the reason.
	at com.alipay.sofa.jraft.RaftServiceFactory.createAndInitRaftNode(RaftServiceFactory.java:48)
	at com.alipay.sofa.jraft.RaftGroupService.start(RaftGroupService.java:129)
	at com.alibaba.nacos.core.distributed.raft.JRaftServer.createMultiRaftGroup(JRaftServer.java:268)
	at com.alibaba.nacos.core.distributed.raft.JRaftProtocol.addRequestProcessors(JRaftProtocol.java:163)
	at com.alibaba.nacos.naming.consistency.persistent.impl.PersistentServiceProcessor.afterConstruct(PersistentServiceProcessor.java:79)
	at com.alibaba.nacos.naming.consistency.persistent.PersistentConsistencyServiceDelegateImpl.createNewPersistentServiceProcessor(PersistentConsistencyServiceDelegateImpl.java:108)
	at com.alibaba.nacos.naming.consistency.persistent.PersistentConsistencyServiceDelegateImpl.<init>(PersistentConsistencyServiceDelegateImpl.java:54)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:175)
	... 150 common frames omitted

解决方案,在Nacso启动类,添加:

-Dnacos.standalone=true -Dnacos.home=D:\\soft\\nacos2.0.3\\nacos

 这样才能启动成功。

问题3

打包命令在这里可以找到:.github/workflows/ci.yml

执行打包命令:

mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U

报错: 

Too many files with unapproved license: 231 See RAT report in: D:\soft\nacos2.0.3\nacos\target\rat.txt

这个问题是由于 Apache RAT(Release Audit Tool)检测到项目中有大量文件没有包含合适的许可证头信息。Apache RAT 是一个用于检查项目中文件是否符合 Apache 许可证要求的工具。 

解决:

 D:\soft\nacos2.0.3\nacos\pom.xml文件,apache-rat-plugin 插件添加

                        <!-- 排除 RocksDB 相关文件 -->
                        <exclude>**/data/protocol/raft/**</exclude>
                        <!-- 排除配置文件 -->
                        <exclude>**/data/tps/**</exclude>
                        <exclude>**/data/loader/**</exclude>
                        <!-- 排除临时文件 -->
                        <exclude>**/data/upgrade.state</exclude>
                        <exclude>**/.flattened-pom.xml</exclude>
                        <!-- 排除压缩文件 -->
                        <exclude>**/*.zip</exclude>
                        <exclude>**/target/**</exclude>
                        <exclude>**/*.log</exclude>
                        <exclude>**/*.json</exclude>
                        <exclude>**/*.xml</exclude>
                        <exclude>**/*.properties</exclude>
                        <exclude>**/*.txt</exclude>
                        <exclude>**/*.md</exclude>
                        <exclude>**/*.iml</exclude>
                        <exclude>**/*.class</exclude>
                        <exclude>**/*.jar</exclude>
                        <exclude>**/*.war</exclude>
                        <exclude>**/*.ear</exclude>
                        <exclude>**/*.zip</exclude>
                        <exclude>**/*.tar.gz</exclude>
                        <exclude>**/*.bin</exclude>
                        <exclude>**/*.dat</exclude>
                        <exclude>**/*.cache</exclude>
                        <exclude>**/*.lst</exclude>
                        <exclude>**/*.sql</exclude>
                        <exclude>**/*.csv</exclude>
                        <exclude>**/*.png</exclude>
                        <exclude>**/*.jpg</exclude>
                        <exclude>**/*.gif</exclude>
                        <exclude>**/*.ico</exclude>
                        <exclude>**/*.svg</exclude>
                        <exclude>**/*.woff</exclude>
                        <exclude>**/*.woff2</exclude>
                        <exclude>**/*.ttf</exclude>
                        <exclude>**/*.eot</exclude>
                        <exclude>**/*.otf</exclude>
                        <exclude>**/*.swf</exclude>
                        <exclude>**/*.mp3</exclude>
                        <exclude>**/*.mp4</exclude>
                        <exclude>**/*.flv</exclude>
                        <exclude>**/*.avi</exclude>
                        <exclude>**/*.wmv</exclude>
                        <exclude>**/*.mov</exclude>
                        <exclude>**/*.mkv</exclude>
                        <exclude>**/*.pdf</exclude>
                        <exclude>**/*.doc</exclude>
                        <exclude>**/*.docx</exclude>
                        <exclude>**/*.xls</exclude>
                        <exclude>**/*.xlsx</exclude>
                        <exclude>**/*.ppt</exclude>
                        <exclude>**/*.pptx</exclude>
                        <exclude>**/*.odt</exclude>
                        <exclude>**/*.ods</exclude>
                        <exclude>**/*.odp</exclude>
                        <exclude>**/*.odg</exclude>
                        <exclude>**/*.odc</exclude>
                        <exclude>**/*.odf</exclude>
                        <exclude>**/*.odb</exclude>
                        <exclude>**/*.sxc</exclude>
                        <exclude>**/*.sxd</exclude>
                        <exclude>**/*.sxi</exclude>
                        <exclude>**/*.sxw</exclude>
                        <exclude>**/*.sxg</exclude>
                        <exclude>**/*.stw</exclude>
                        <exclude>**/*.sxm</exclude>
                        <exclude>**/*.otc</exclude>
                        <exclude>**/*.ots</exclude>
                        <exclude>**/*.otp</exclude>
                        <exclude>**/*.otg</exclude>
                        <exclude>**/*.odi</exclude>
                        <exclude>**/*.oth</exclude>
                        <exclude>**/*.oxt</exclude>
                        <exclude>**/*.odb</exclude>
                        <exclude>**/*.odm</exclude>
                        <exclude>**/*.ott</exclude>
                        <exclude>**/*.otx</exclude>
                        <exclude>**/*.odc</exclude>
                        <exclude>**/*.odf</exclude>
                        <exclude>**/*.odg</exclude>
                        <exclude>**/*.odi</exclude>
                        <exclude>**/*.odp</exclude>
                        <exclude>**/*.ods</exclude>
                        <exclude>**/*.odt</exclude>
                        <exclude>**/*.oga</exclude>
                        <exclude>**/*.ogg</exclude>
                        <exclude>**/*.ogv</exclude>
                        <exclude>**/*.ogx</exclude>
                        <exclude>**/*.spx</exclude>
                        <exclude>**/*.opus</exclude>
                        <exclude>**/*.webm</exclude>
                        <exclude>**/*.mkv</exclude>
                        <exclude>**/*.flac</exclude>
                        <exclude>**/*.aac</exclude>
                        <exclude>**/*.m4a</exclude>
                        <exclude>**/*.mp3</exclude>
                        <exclude>**/*.wav</exclude>
                        <exclude>**/*.wma</exclude>
                        <exclude>**/*.mid</exclude>
                        <exclude>**/*.midi</exclude>
                        <exclude>**/*.kar</exclude>
                        <exclude>**/*.ape</exclude>
                        <exclude>**/*.ra</exclude>
                        <exclude>**/*.rm</exclude>
                        <exclude>**/*.ram</exclude>
                        <exclude>**/*.wv</exclude>
                        <exclude>**/*.wvp</exclude>
                        <exclude>**/*.aif</exclude>
                        <exclude>**/*.aiff</exclude>
                        <exclude>**/*.aifc</exclude>
                        <exclude>**/*.au</exclude>
                        <exclude>**/*.snd</exclude>
                        <exclude>**/*.voc</exclude>
                        <exclude>**/*.8svx</exclude>
                        <exclude>**/*.smp</exclude>
                        <exclude>**/*.sph</exclude>
                        <exclude>**/*.smpl</exclude>
                        <exclude>**/*.smpls</exclude>
                        <exclude>**/*.smplx</exclude>
                        <exclude>**/*.smplz</exclude>
                        <exclude>**/*.smpl2</exclude>
                        <exclude>**/*.smpl3</exclude>
                        <exclude>**/*.smpl4</exclude>
                        <exclude>**/*.smpl5</exclude>
                        <exclude>**/*.smpl6</exclude>
                        <exclude>**/*.smpl7</exclude>
                        <exclude>**/*.smpl8</exclude>
                        <exclude>**/*.smpl9</exclude>
                        <exclude>**/*.smpl10</exclude>
                        <exclude>**/*.smpl11</exclude>
                        <exclude>**/*.smpl12</exclude>
                        <exclude>**/*.smpl13</exclude>
                        <exclude>**/*.smpl14</exclude>
                        <exclude>**/*.smpl15</exclude>
                        <exclude>**/*.smpl16</exclude>
                        <exclude>**/*.smpl17</exclude>
                        <exclude>**/*.smpl18</exclude>
                        <exclude>**/*.smpl19</exclude>
                        <exclude>**/*.smpl20</exclude>
                        <exclude>**/*.smpl21</exclude>
                        <exclude>**/*.smpl22</exclude>
                        <exclude>**/*.smpl23</exclude>
                        <exclude>**/*.smpl24</exclude>
                        <exclude>**/*.smpl25</exclude>
                        <exclude>**/*.smpl26</exclude>
                        <exclude>**/*.smpl27</exclude>
                        <exclude>**/*.smpl28</exclude>
                        <exclude>**/*.smpl29</exclude>
                        <exclude>**/*.smpl30</exclude>
                        <exclude>**/*.smpl31</exclude>
                        <exclude>**/*.smpl32</exclude>
                        <exclude>**/*.smpl33</exclude>
                        <exclude>**/*.smpl34</exclude>
                        <exclude>**/*.smpl35</exclude>
                        <exclude>**/*.smpl36</exclude>
                        <exclude>**/*.smpl37</exclude>
                        <exclude>**/*.smpl38</exclude>
                        <exclude>**/*.smpl39</exclude>
                        <exclude>**/*.smpl40</exclude>
                        <exclude>**/*.smpl41</exclude>
                        <exclude>**/*.smpl42</exclude>
                        <exclude>**/*.smpl43</exclude>
                        <exclude>**/*.smpl44</exclude>
                        <exclude>**/*.smpl45</exclude>
                        <exclude>**/*.smpl46</exclude>
                        <exclude>**/*.smpl47</exclude>
                        <exclude>**/*.smpl48</exclude>
                        <exclude>**/*.smpl49</exclude>
                        <exclude>**/*.smpl50</exclude>
                        <exclude>**/*.smpl51</exclude>
                        <exclude>**/*.smpl52</exclude>
                        <exclude>**/*.smpl53</exclude>
                        <exclude>**/*.smpl54</exclude>
                        <exclude>**/*.smpl55</exclude>
                        <exclude>**/*.smpl56</exclude>
                        <exclude>**/*.smpl57</exclude>
                        <exclude>**/*.smpl58</exclude>
                        <exclude>**/*.smpl59</exclude>
                        <exclude>**/*.smpl60</exclude>
                        <exclude>**/*.smpl61</exclude>
                        <exclude>**/*.smpl62</exclude>
                        <exclude>**/*.smpl63</exclude>
                        <exclude>**/*.smpl64</exclude>
                        <exclude>**/*.smpl65</exclude>
                        <exclude>**/*.smpl66</exclude>
                        <exclude>**/*.smpl67</exclude>
                        <exclude>**/*.smpl68</exclude>
                        <exclude>**/*.smpl69</exclude>
                        <exclude>**/*.smpl70</exclude>
                        <exclude>**/*.smpl71</exclude>
                        <exclude>**/*.smpl72</exclude>
                        <exclude>**/*.smpl73</exclude>
                        <exclude>**/*.smpl74</exclude>
                        <exclude>**/*.smpl75</exclude>
                        <exclude>**/*.smpl76</exclude>
                        <exclude>**/*.smpl77</exclude>
                        <exclude>**/*.smpl78</exclude>
                        <exclude>**/*.smpl79</exclude>
                        <exclude>**/*.smpl80</exclude>
                        <exclude>**/*.smpl81</exclude>
                        <exclude>**/*.smpl82</exclude>
                        <exclude>**/*.smpl83</exclude>
                        <exclude>**/*.smpl84</exclude>
                        <exclude>**/*.smpl85</exclude>
                        <exclude>**/*.smpl86</exclude>
                        <exclude>**/*.smpl87</exclude>
                        <exclude>**/*.smpl88</exclude>
                        <exclude>**/*.smpl89</exclude>
                        <exclude>**/*.smpl90</exclude>
                        <exclude>**/*.smpl91</exclude>
                        <exclude>**/*.smpl92</exclude>
                        <exclude>**/*.smpl93</exclude>
                        <exclude>**/*.smpl94</exclude>
                        <exclude>**/*.smpl95</exclude>
                        <exclude>**/*.smpl96</exclude>
                        <exclude>**/*.smpl97</exclude>
                        <exclude>**/*.smpl98</exclude>
                        <exclude>**/*.smpl99</exclude>
                        <exclude>**/*.smpl100</exclude>
                        <exclude>**/*.smpl101</exclude>
                        <exclude>**/*.smpl102</exclude>
                        <exclude>**/*.smpl103</exclude>
                        <exclude>**/*.smpl104</exclude>
                        <exclude>**/*.smpl105</exclude>
                        <exclude>**/*.smpl106</exclude>
                        <exclude>**/*.smpl107</exclude>
                        <exclude>**/*.smpl108</exclude>
                        <exclude>**/*.smpl109</exclude>
                        <exclude>**/*.smpl110</exclude>
                        <exclude>**/*.smpl111</exclude>
                        <exclude>**/*.smpl112</exclude>
                        <exclude>**/*.smpl113</exclude>
                        <exclude>**/*.smpl114</exclude>
                        <exclude>**/*.smpl115</exclude>
                        <exclude>**/*.smpl116</exclude>
                        <exclude>**/*.smpl117</exclude>
                        <exclude>**/*.smpl118</exclude>
                        <exclude>**/*.smpl119</exclude>
                        <exclude>**/*.smpl120</exclude>
                        <exclude>**/*.smpl121</exclude>
                        <exclude>**/*.smpl122</exclude>
                        <exclude>**/*.smpl123</exclude>
                        <exclude>**/*.smpl124</exclude>
                        <exclude>**/*.smpl125</exclude>
                        <exclude>**/*.smpl126</exclude>
                        <exclude>**/*.smpl127</exclude>
                        <exclude>**/*.smpl128</exclude>
                        <exclude>**/*.smpl129</exclude>
                        <exclude>**/*.smpl130</exclude>
                        <exclude>**/*.smpl131</exclude>
                        <exclude>**/*.smpl132</exclude>
                        <exclude>**/*.smpl133</exclude>
                        <exclude>**/*.smpl134</exclude>

问题4

执行

mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U

报错:

[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:3.5.0-M1:repackage (default) on project nacos-console: Execution default of goal org.springframework.boot:spring-boot-maven-plugin:3.5.0-M1:repackage failed: Plugin org.springframework.boot:spring-boot-maven-plugin:3.5.0-M1 or one of its dependencies could not be resolved: The following artifacts could not be resolved: org.springframework.boot:spring-boot-buildpack-platform:jar:3.5.0-M1, org.springframework.boot:spring-boot-loader-tools:jar:3.5.0-M1: Could not find artifact org.springframework.boot:spring-boot-buildpack-platform:jar:3.5.0-M1 in private-maven (https://nexus.51job.com/repository/maven-public/) -> [Help 1]

解决方案:

在idea全局搜索:spring-boot-maven-plugin ,然后添加版本号:

 <version>2.7.18</version>

才会生成可执行jar