搭建SpringBoot源码环境的正确姿势(避坑必备)

搭建SpringBoot源码环境的正确姿势(避坑必备)最近打算拉取SpringBoot源码,各种编译报错,各种问题。参考很多网上的教程,仍然是各种错误。最终研究出来了搭建SpringBoot源码环境的正确姿势。SpringBootGithub地址:https://github.com/spring-projects/spring-boot0、环境准备安装maven3.5或者以上版本。安装JDK8或者以上。1、fork到自…

大家好,又见面了,我是你们的朋友全栈君。

最近打算拉取SpringBoot源码,各种编译报错,各种问题。参考很多网上的教程,仍然是各种错误。

最终研究出来了搭建SpringBoot源码环境的正确姿势。

SpringBoot Github地址:https://github.com/spring-projects/spring-boot

0、环境准备

安装maven 3.5或者以上版本。

安装JDK 8或者以上。

1、fork到自己的库 

当然如果你觉得不需要,可以忽略。

fork到自己的github的好处是后面自己的修改可以提交上去,可以随意造作..

搭建SpringBoot源码环境的正确姿势(避坑必备)
2、 clone下来 

clone下来后可以导入IDEA(也可以先不导入),导入步骤见最后。

3、设置Maven镜像

设置maven镜像如果不会可以自行百度。就是找到setting.xml然后再mirrors标签里粘贴如下内容。

<mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>central</mirrorOf>
        <name>Nexus aliyun</name>
        <url> [http://maven.aliyun.com/nexus/content/groups/public](http://maven.aliyun.com/nexus/content/groups/public) </url>
</mirror>

<mirror>  
     <id>ibiblio</id>  
     <mirrorOf>central</mirrorOf>  
     <name>ibiblio Mirror of  [http://repo1.maven.org/maven2/](http://repo1.maven.org/maven2/) </name>  
     <url> [http://mirrors.ibiblio.org/pub/mirrors/maven2/](http://mirrors.ibiblio.org/pub/mirrors/maven2/) </url>  
</mirror>  

<mirror>  
     <id>jboss-public-repository-group</id>  
     <mirrorOf>central</mirrorOf>  
     <name>JBoss Public Repository Group</name>  
     <url> [http://repository.jboss.org/nexus/content/groups/public](http://repository.jboss.org/nexus/content/groups/public) </url>  
</mirror>

<mirror>
  <id>repo2</id>
  <mirrorOf>central</mirrorOf>
  <name>Human Readable Name for this Mirror.</name>
  <url> [http://repo2.maven.org/maven2/](http://repo2.maven.org/maven2/) </url>
</mirror>


<mirror>
  <id>ui</id>
  <mirrorOf>central</mirrorOf>
  <name>Human Readable Name for this Mirror.</name>
 <url> [http://uk.maven.org/maven2/](http://uk.maven.org/maven2/) </url>
</mirror>

 

4、修改最外层pom.xml文件

<properties>下加

<disable.checks>true</disable.checks>

搭建SpringBoot源码环境的正确姿势(避坑必备)
5. 安装并使用mvnwrapper编译项目

参见GitHub  maven-wrapper:  https://github.com/takari/maven-wrapper

进入到spring-boot检出的目录

执行: mvn -N io.takari:maven:wrapper

然后执行: ./mvnw clean install -DskipTests -Pfast

 

然后看到如下结果,表示构建成功。

搭建SpringBoot源码环境的正确姿势(避坑必备)

然后选取项目里的一个单元测试运行一下,走起,发现运行成功了。

6 构造spring-boot-sample模块

导入项目后发现spring-boot-sample模块没有显示模块样式,没有显示正常的模块结构。

我们再回到最外层的pom.xml文件,发现模块这里专门有一句话“Samples are built via the invoker plugin” 可见 samples模块是通过invoker插件来构建的。

搭建SpringBoot源码环境的正确姿势(避坑必备)

 

进入invoker模块。

编辑其中的pom.xml文件在

<properties>下加

<skipTests>true</skipTests>

搭建SpringBoot源码环境的正确姿势(避坑必备)

我们打开IDEA右侧的maven面板,执行install。

搭建SpringBoot源码环境的正确姿势(避坑必备)

也可以cd 到该子模块,然后执行mvn clean build

然后在最外层的pom.xml整添加模块:<module>spring-boot-samples</module>

搭建SpringBoot源码环境的正确姿势(避坑必备)

然后发现sample模块显示正常

搭建SpringBoot源码环境的正确姿势(避坑必备)

然后再sample模块里运行一个DEMO,发现运行正常,搞定…

 

可能遇到的情况

如果pom.xml文件的project标签上显示java.lang.OutOfMemoryError:GC overhead limit exceeded,可以参考

https://blog.csdn.net/w605283073/article/details/85107497 来解决。

 

SpringBoot源码导入IDEA

IDEA菜单  File –>New –> Project From Existing Sources

搭建SpringBoot源码环境的正确姿势(避坑必备)

然后选择Maven –> Next

搭建SpringBoot源码环境的正确姿势(避坑必备)

后面就一步步导入就可以了。

 

写在最后

如果还有错误,请具体看错误提示,耐心排查。如果有其他需要注意的,请评论探讨。

 

我的settring.xml文件配置

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <servers>


 </servers>

 <mirrors>
    <mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>central</mirrorOf>
        <name>Nexus aliyun</name>
        <url> http://maven.aliyun.com/nexus/content/groups/public)</url>
</mirror>
 
<mirror>  
     <id>ibiblio</id>  
     <mirrorOf>central</mirrorOf>  
     <name>ibiblio Mirror of  [http://repo1.maven.org/maven2/](http://repo1.maven.org/maven2/) </name>  
     <url> http://mirrors.ibiblio.org/pub/mirrors/maven2/</url>  
</mirror>  
 
<mirror>  
     <id>jboss-public-repository-group</id>  
     <mirrorOf>central</mirrorOf>  
     <name>JBoss Public Repository Group</name>  
     <url>http://repository.jboss.org/nexus/content/groups/public </url>  
</mirror>
 
<mirror>
  <id>repo2</id>
  <mirrorOf>central</mirrorOf>
  <name>Human Readable Name for this Mirror.</name>
  <url> http://repo2.maven.org/maven2/</url>
</mirror>
 
 
<mirror>
  <id>ui</id>
  <mirrorOf>central</mirrorOf>
  <name>Human Readable Name for this Mirror.</name>
 <url> http://uk.maven.org/maven2/ </url>
</mirror>
    </mirrors>

<profiles>
	


<!--回去开发的配置-->
 <profile>
      <id>home-dev</id>
      <repositories>
    

          <repository>
            <id>nexus-aliyun</id>
            <name>Nexus aliyun</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public</url>
        </repository>

     <repository>
            <id>nexus-tmatesoft</id>
            <name>Nexus tmatesoftn</name>
            <url>https://maven.tmatesoft.com/content/groups/public/</url>
        </repository>



     <repository>
            <id>ibiblio</id>
            <name>Nexus ibiblio</name>
            <url>http://maven.ibiblio.org/maven2/</url>
        </repository>


   <repository>
            <id>nexus-repos1</id>
            <name>Central Repository1</name>
            <url>http://repo1.maven.org/maven2/</url>
        </repository>

   <repository>
            <id>uk-maven2</id>
            <name>Nexus uk maven2</name>
            <url>http://uk.maven.org/maven2/</url>
        </repository>


      </repositories>
    </profile>

  </profiles>
  <activeProfiles>
    <activeProfile>home-dev</activeProfile> 
 
  </activeProfiles>
</settings>

如果觉得本文对你有帮助,欢迎点赞,欢迎关注我,如果有补充欢迎评论交流,我将努力创作更多更好的文章。

另外欢迎加入我的知识星球,知识星球ID:15165241 一起交流学习。

https://t.zsxq.com/Z3bAiea  申请时标注来自CSDN。

 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/131750.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月11日 下午10:16
下一篇 2022年6月11日 下午10:16


相关推荐

  • 一个架构师谈什么是架构以及怎么成为一个架构师

    一个架构师谈什么是架构以及怎么成为一个架构师新年新事 来点轻松的话题 我们调剂一下后再继续讲 CASSSO 单点登录吧因为后面的内容全部和代码有关 大家会觉得枯燥 所以今天我们先来点 番外篇 讲讲什么是架构师 什么是架构这个永恒的话题吧 此篇源出自我在公司内部写的一个 PPT 它是用于在公司内部向广大技术人员做普及用的一个资料 而 CSDN 这边的编辑不支持图文混排的效果 因此一些章节我就直接截取自我的 PPT 里的内容了 这样可能对大家在阅读上会显

    2026年3月17日
    2
  • 对数函数定义域和值域_对数函数的定义域,值域是怎么求的

    对数函数定义域和值域_对数函数的定义域,值域是怎么求的展开全部对数函数的一般形式是 y logax 定义域求解 对数函数 y logax 的定义域是 x 丨 x gt 0 但如果遇到对 e78988e69d53 数型复合函数的定义域的求解 除了要注意大于 0 以外 还应注意底数大于 0 且不等于 1 如求函数 y logx 2x 1 的定义域 需同时满足 x gt 0 且 x 1 和 2

    2026年3月17日
    1
  • 各种常用不等式汇总「建议收藏」

    各种常用不等式汇总「建议收藏」对数学中常用的不等式进行了汇总,目前只有结论,没有证明

    2025年11月13日
    7
  • 路由技术——OSPF

    路由技术——OSPF基础理论部分 邻居关系建立 1 OSPF 报文类型以及每一种报文的作用 提示 hello 作用有 4 个 答 OSPF 报文一共有 5 种 1 gt Hello 作用 1 发现邻居 2 维护邻居关系 3 选举 DR BDR4 保证邻居的双向通信 2 gt DBD Databasedesc 1 选举 DR BDR2 交互数据库摘要信息 3 gt LSR LSARequest 向对方请求对方有 本地没有的 LSA 信息 4 gt LSU LSAUpdate 给邻居发送 LSA 信

    2026年3月19日
    2
  • findindex方法_find函数怎么用

    findindex方法_find函数怎么用findIndex(fn)方法:(注意:1.不需要return2.参数fn就是检索条件)返回在数组中查找符合条件第一个元素的index索引。vararr=[12,16,18,20]letindex=arr.findindex((item)=>{ item>=18})//打印index为2…

    2025年6月25日
    9
  • SEO优化网站教程百度_人员优化流程

    SEO优化网站教程百度_人员优化流程一准备1、心态长时间,不断学习。学习建站、基础代码、SEO全过程、实际操作并成功。2、价值与优势流量=价值。SEO是获得客户的技能,通过引流产生价值。①客户更精准,客户是主动的;②成本低、排名稳定、关键词有可扩展性。3、SEO工作①PC站优化:网站架构、页面关系、代码优化、链接推送等;WAP优化:继承PC站的优化成果,进行代码优化、移动适配;②内容发布:管理原创内容、转载内容、用户内容的更新频率与数量;③数据分析:关注收录量、收录率、展现量。④做日志分析,对服务器/网站进行监

    2026年1月17日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号