最近打算拉取SpringBoot源码,各种编译报错,各种问题。参考很多网上的教程,仍然是各种错误。
最终研究出来了搭建SpringBoot源码环境的正确姿势。
SpringBoot Github地址:https://github.com/spring-projects/spring-boot
安装maven 3.5或者以上版本。
安装JDK 8或者以上。
当然如果你觉得不需要,可以忽略。
fork到自己的github的好处是后面自己的修改可以提交上去,可以随意造作..
clone下来后可以导入IDEA(也可以先不导入),导入步骤见最后。
设置maven镜像如果不会可以自行百度。就是找到setting.xml然后再mirrors标签里粘贴如下内容。
nexus-aliyun
central
Nexus aliyun
[http://maven.aliyun.com/nexus/content/groups/public](http://maven.aliyun.com/nexus/content/groups/public)
ibiblio
central
ibiblio Mirror of [http://repo1.maven.org/maven2/](http://repo1.maven.org/maven2/)
[http://mirrors.ibiblio.org/pub/mirrors/maven2/](http://mirrors.ibiblio.org/pub/mirrors/maven2/)
jboss-public-repository-group
central
JBoss Public Repository Group
[http://repository.jboss.org/nexus/content/groups/public](http://repository.jboss.org/nexus/content/groups/public)
repo2
central
Human Readable Name for this Mirror.
[http://repo2.maven.org/maven2/](http://repo2.maven.org/maven2/)
ui
central
Human Readable Name for this Mirror.
[http://uk.maven.org/maven2/](http://uk.maven.org/maven2/)
true
参见GitHub maven-wrapper: https://github.com/takari/maven-wrapper
进入到spring-boot检出的目录
执行: mvn -N io.takari:maven:wrapper
然后执行: ./mvnw clean install -DskipTests -Pfast
然后看到如下结果,表示构建成功。
然后选取项目里的一个单元测试运行一下,走起,发现运行成功了。
导入项目后发现spring-boot-sample模块没有显示模块样式,没有显示正常的模块结构。
我们再回到最外层的pom.xml文件,发现模块这里专门有一句话“Samples are built via the invoker plugin” 可见 samples模块是通过invoker插件来构建的。
进入invoker模块。
编辑其中的pom.xml文件在
true
我们打开IDEA右侧的maven面板,执行install。
也可以cd 到该子模块,然后执行mvn clean build
然后在最外层的pom.xml整添加模块:
然后发现sample模块显示正常
然后再sample模块里运行一个DEMO,发现运行正常,搞定...
如果pom.xml文件的project标签上显示java.lang.OutOfMemoryError:GC overhead limit exceeded,可以参考
https://blog.csdn.net/w605283073/article/details/85107497 来解决。
IDEA菜单 File -->New --> Project From Existing Sources
然后选择Maven --> Next
后面就一步步导入就可以了。
如果还有错误,请具体看错误提示,耐心排查。如果有其他需要注意的,请评论探讨。
我的settring.xml文件配置
nexus-aliyun
central
Nexus aliyun
http://maven.aliyun.com/nexus/content/groups/public)
ibiblio
central
ibiblio Mirror of [http://repo1.maven.org/maven2/](http://repo1.maven.org/maven2/)
http://mirrors.ibiblio.org/pub/mirrors/maven2/
jboss-public-repository-group
central
JBoss Public Repository Group
http://repository.jboss.org/nexus/content/groups/public
repo2
central
Human Readable Name for this Mirror.
http://repo2.maven.org/maven2/
ui
central
Human Readable Name for this Mirror.
http://uk.maven.org/maven2/
home-dev
nexus-aliyun
Nexus aliyun
http://maven.aliyun.com/nexus/content/groups/public
nexus-tmatesoft
Nexus tmatesoftn
https://maven.tmatesoft.com/content/groups/public/
ibiblio
Nexus ibiblio
http://maven.ibiblio.org/maven2/
nexus-repos1
Central Repository1
http://repo1.maven.org/maven2/
uk-maven2
Nexus uk maven2
http://uk.maven.org/maven2/
home-dev
如果觉得本文对你有帮助,欢迎点赞,欢迎关注我,如果有补充欢迎评论交流,我将努力创作更多更好的文章。
另外欢迎加入我的知识星球,知识星球ID:15165241 一起交流学习。
https://t.zsxq.com/Z3bAiea 申请时标注来自CSDN。