电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

spring源碼下載、編譯、debug的詳細教程

瀏覽:7日期:2023-08-05 13:21:39

零、資源準備及環境配置

記安裝時間:2020.02.20環境準備:1、idea2019.3.3旗艦版,免費試用30天版本2、gradle5.6版本3、jdk1.8.0_2024、spring源碼。spring源碼下載鏈接:https://github.com/spring-projects/spring-frameworkgradle安裝及下載鏈接:https://gradle.org/install/#helpful-informationidea2.019.3.3下載鏈接:https://www.jetbrains.com/idea/download/other.html

一、spring源碼的下載、編譯、導入idea

前言:請仔細閱讀README.md、import-into-idea.md文檔

1、spring源碼下載

git clone git://github.com/spring-projects/spring-framework.git注意git clone速度會比較慢,可以使用如下方法提速:

1、使用nslookup命令查看如下url的ip:github.com、github.global.ssl.fastly.Net、global-ssl.fastly.Net、assets-cdn.github.com2、寫入到/etc/hosts文件中類似如下的形式:13.250.177.223 github.com205.186.152.122 github.global.ssl.fastly.Net151.101.108.249 global-ssl.fastly.Net185.199.109.153 assets-cdn.github.com3、刷新dns緩存:sudo dscacheutil -flushcache4、git clone

2、gradle下載及安裝

gradle的版本選擇及安裝直接參考官網文檔:https://gradle.org/install/#helpful-informationgradle下載依賴速度比較慢,可以采用更改下載來源的方法提速:

在~/.gradle目錄下創建名為init.gradle的文件,寫入內容如下:allprojects{ repositories { def REPOSITORY_URL = ’http://maven.aliyun.com/nexus/content/groups/public/’ all { ArtifactRepository repo -> if(repo instanceof MavenArtifactRepository){def url = repo.url.toString()if (url.startsWith(’https://repo1.maven.org/maven2’) || url.startsWith(’https://jcenter.bintray.com/’)) { project.logger.lifecycle 'Repository ${repo.url} replaced by $REPOSITORY_URL.' remove repo} } } maven { url REPOSITORY_URL } }}

3、spring源碼編譯

1、在spring-framework目錄下,對Spring-oxm模塊進行預編譯,執行命令:./gradlew :spring-oxm:compileTestJava2、在spring-framework目錄下,對spring源碼編譯,執行命令:./gradlew build -x test,注意此處添加-x test命令是為了在編譯期間忽略測試用例

4、spring源碼導入idea

參考spring源碼中的import-into-idea.md文檔,導入方式如下:

spring源碼下載、編譯、debug的詳細教程spring源碼下載、編譯、debug的詳細教程

然后勾選auto-import、點擊使用本地的gradle,如果出現導入失敗的問題,可能原因:1)如果報錯信息是gradle版本太高,則使用低版本的gradle,2)如果是找不到Jar.class類的getArchiveFile()則說明gradle版本太低,安裝高版本的gradle。親測gradle5.6可用。注:導入idea成功后記得要排除spring-aspects模塊,因為這個模塊有可能會導致編譯無法通過。方法:選中spring-aspects模塊右鍵,選擇“Load/Unload Moudules”(我在導入時沒有遇見這個問題)

二、創建spring demo測試

參考如下兩個博客:http://www.freesion.com/article/300775367/https://blog.csdn.net/feichongyh/article/details/88819535個人親測,都可以執行成功。如果執行期間遇見如下錯誤:Kotlin: [Internal Error] java.lang.LinkageError: loader constraint violation:loader (instance of org/jetbrains/kotlin/cli/jvm/plugins/PluginURLClassLoader$SelfThenParentURLClassLoader) previously initiated loading for a different type with name “kotlin/sequences/Sequence”有可能是因為idea版本太低導致的,我剛開始使用的是idea2018,就會報這個錯誤,安裝idea2019就沒有這個問題了參考博客:https://blog.csdn.net/u010316188/article/details/98887430

另外如果想新建gradle項目,可參考博客:https://www.jianshu.com/p/984fe1c67257

三、問題匯總

1、CoroutinesUtils找不到該類

Error:(354, 51) java: 找不到符號符號: 變量 CoroutinesUtils位置: 類 org.springframework.core.ReactiveAdapterRegistry.CoroutinesRegistrar

解決方法:點擊File -> Project Structure -> Libraries -> + -> Java,然后選擇spring-framework/spring-core/kotlin-coroutines/build/libs/kotlin-coroutines-5.2.4.BUILD-SNAPSHOT.jar,在彈出的對話框中選擇spring-core.main,在重新build項目即可。1)打開Project Structure:

spring源碼下載、編譯、debug的詳細教程

2)導入jar包:

spring源碼下載、編譯、debug的詳細教程

3)選擇kotlin-coroutines-5.2.4.BUILD-SNAPSHOT.jar:

spring源碼下載、編譯、debug的詳細教程

4)選擇spring-core.main:

spring源碼下載、編譯、debug的詳細教程

備注:1、如下圖所示,在spring-core目錄下有kotlin-coroutines目錄:

spring源碼下載、編譯、debug的詳細教程

2、找不到Jar.class類的getArchiveFile()

gradle版本過低導致找不到gradle中的某些類,重新安裝高版本的gradle,如果不清楚安裝哪個版本的,可以在參考該類的最后提交時間,安裝早于該時間的gradle版本即可。

3、kotlin/sequences/Sequence錯誤

在idea的插件中升級kotlin,無法升級的話,就重新安裝idea的版本即可,本人使用2019.3.3版本測試通過。

到此這篇關于spring源碼下載、編譯、debug的文章就介紹到這了,更多相關spring源碼編譯debug內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
主站蜘蛛池模板: 珠宝展柜-玻璃精品展柜-首饰珠宝展示柜定制-鸿钛展柜厂家 | 超声波气象站_防爆气象站_空气质量监测站_负氧离子检测仪-风途物联网 | 半自动预灌装机,卡式瓶灌装机,注射器灌装机,给药器灌装机,大输液灌装机,西林瓶灌装机-长沙一星制药机械有限公司 | 400电话_400电话申请_866元/年_【400电话官方业务办理】-俏号网 3dmax渲染-效果图渲染-影视动画渲染-北京快渲科技有限公司 | 标准品网_标准品信息网_【中检计量】| 杭州代理记账费用-公司注销需要多久-公司变更监事_杭州福道财务管理咨询有限公司 | 不锈钢管件(不锈钢弯头,不锈钢三通,不锈钢大小头),不锈钢法兰「厂家」-浙江志通管阀 | 酒瓶_酒杯_玻璃瓶生产厂家_徐州明政玻璃制品有限公司 | 手术室净化装修-手术室净化工程公司-华锐手术室净化厂家 | 真空粉体取样阀,电动楔式闸阀,电动针型阀-耐苛尔(上海)自动化仪表有限公司 | 色油机-色母机-失重|称重式混料机-称重机-米重机-拌料机-[东莞同锐机械]精密计量科技制造商 | 轻型地埋电缆故障测试仪,频响法绕组变形测试仪,静荷式卧式拉力试验机-扬州苏电 | 拉力机-万能试验机-材料拉伸试验机-电子拉力机-拉力试验机厂家-冲击试验机-苏州皖仪实验仪器有限公司 | 升降机-高空作业车租赁-蜘蛛车-曲臂式伸缩臂剪叉式液压升降平台-脚手架-【普雷斯特公司厂家】 | 石家庄律师_石家庄刑事辩护律师_石家庄取保候审-河北万垚律师事务所 | HEYL硬度计量泵-荧光法在线溶解氧仪-净时测控技术(上海)有限公司 | 高防护蠕动泵-多通道灌装系统-高防护蠕动泵-www.bjhuiyufluid.com慧宇伟业(北京)流体设备有限公司 | 隆众资讯-首页_大宗商品资讯_价格走势_市场行情 | pos机办理,智能/扫码/二维码/微信支付宝pos机-北京万汇通宝商贸有限公司 | 河南中整光饰机械有限公司-抛光机,去毛刺抛光机,精密镜面抛光机,全自动抛光机械设备 | 解放卡车|出口|济南重汽|报价大全|山东三维商贸有限公司 | 酒糟烘干机-豆渣烘干机-薯渣烘干机-糟渣烘干设备厂家-焦作市真节能环保设备科技有限公司 | LZ-373测厚仪-华瑞VOC气体检测仪-个人有毒气体检测仪-厂家-深圳市深博瑞仪器仪表有限公司 | 等离子空气净化器_医用空气消毒机_空气净化消毒机_中央家用新风系统厂家_利安达官网 | 引领中高档酒店加盟_含舍·美素酒店品牌官网 | 广州工业氧气-工业氩气-工业氮气-二氧化碳-广州市番禺区得力气体经营部 | 代办建筑资质升级-建筑资质延期就找上海国信启航 | 棉柔巾代加工_洗脸巾oem_一次性毛巾_浴巾生产厂家-杭州禾壹卫品科技有限公司 | 小学教案模板_中学教师优秀教案_高中教学设计模板_教育巴巴 | 聚合氯化铝-碱式氯化铝-聚合硫酸铁-聚氯化铝铁生产厂家多少钱一吨-聚丙烯酰胺价格_河南浩博净水材料有限公司 | 皮带机-带式输送机价格-固定式胶带机生产厂家-河南坤威机械 | 北京企业宣传片拍摄_公司宣传片制作-广告短视频制作_北京宣传片拍摄公司 | 微型驱动系统解决方案-深圳市兆威机电股份有限公司 | 粉末包装机-给袋式包装机-全自动包装机-颗粒-液体-食品-酱腌菜包装机生产线【润立机械】 | 滚塑PE壳体-PE塑料浮球-警示PE浮筒-宁波君益塑业有限公司 | 干粉砂浆设备_干混砂浆生产线_腻子粉加工设备_石膏抹灰砂浆生产成套设备厂家_干粉混合设备_砂子烘干机--郑州铭将机械设备有限公司 | 黑田精工电磁阀-CAMMOZI气缸-ROSS电磁-上海茂硕机械设备有限公司 | 厂房出租-厂房规划-食品技术-厂房设计-厂房装修-建筑施工-设备供应-设备求购-龙爪豆食品行业平台 | 金现代信息产业股份有限公司--数字化解决方案供应商 | 盘扣式脚手架-附着式升降脚手架-移动脚手架,专ye承包服务商 - 苏州安踏脚手架工程有限公司 | 河南mpp电力管_mpp电力管生产厂家_mpp电力电缆保护管价格 - 河南晨翀实业 |