spring-framework项目环境踩坑记录

上个系列的tomcat告一段落了 , 准备开始springmvc系列的源码阅读 ,spring官方搞了个大杂烩叫spring-framework ,使用gradle 构建,在环境搭建过程中踩了不少坑, 记录下

如果你使用jdk1.8 版本 请使用5.2.x分支

1. java home is differnet

出现该问题的原因是jdk版本不一致,最后在StackOverflow上找到解决方法 :
https://stackoverflow.com/questions/37960949/intellij-idea-says-java-home-is-different

Be sure to check and correct JDK version in these 3 places:

  1. Check Preferences -> Build,... -> Build Tools -> Gradle -> Gradle JVM:
image.png
  1. Check Project Structure -> Project Settings -> Project -> Project SDK:
image.png
  1. Check Project Structure -> Platform Settings -> SDKs:
image.png

2. com.gradle.enterprise', version: '3.9'] was not found

主要因为是连接国外的服务器网速过慢 ,该国内仓库地址解决

a. 项目根目录下build.grade修改 , 左侧是原版本的 ,右侧是修改的 :

image.png

修改内容如下:

repositories {
maven{ url 'https://maven.aliyun.com/nexus/content/groups/public'}
maven{ url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}
maven { url "https://repo.spring.io/plugins-release" }
mavean { url "https://plugins.gradle.org/m2/" }
mavenCentral()
maven { url "https://repo.spring.io/libs-spring-framework-build" }
}

b. settings.grade 配置 国内阿里云maven仓库。
pluginManagement {
repositories {
maven { url "https://maven.aliyun.com/repository/public" }
mavenCentral()
gradlePluginPortal()
maven { url "https://repo.spring.io/release" }
}
}

image.png

3. gradle download failed

网速不行,多下几次吧

4. 项目编译通过

Error:(20, 50) java: 程序包org.springframework.objenesis.instantiator不存在
Error:(21, 46) java: 程序包org.springframework.objenesis.strategy不存在
Error:(22, 46) java: 程序包org.springframework.objenesis.strategy不存在
Error:(35, 41) java: 找不到符号
符号: 类 Objenesis
Error:(47, 23) java: 找不到符号
符号: 类 InstantiatorStrategy
位置: 类 org.springframework.objenesis.SpringObjenesis
Error:(49, 60) java: 找不到符号
符号: 类 ObjectInstantiator
位置: 类 org.springframework.objenesis.SpringObjenesis
Error:(68, 32) java: 找不到符号
符号: 类 InstantiatorStrategy
位置: 类 org.springframework.objenesis.SpringObjenesis
Error:(110, 20) java: 找不到符号
符号: 类 ObjectInstantiator
位置: 类 org.springframework.objenesis.SpringObjenesis
Error:(122, 23) java: 找不到符号
符号: 类 ObjectInstantiator
位置: 类 org.springframework.objenesis.SpringObjenesis


image.png

原因是Spring Framework为了避免与cglib和objenesis冲突,将cglib和objenesis相关的包重新repack到org.springframework.cglib和org.springframework.objenesis包中,这部分的代码没有包含到源码当中。构建之前,可以通过添加Gradle任务来解决,见:https://github.com/spring-projects/spring-framework/blob/master/import-into-idea.md#known-issueshttps://youtrack.jetbrains.com/issue/IDEA-160605
解决办法如下:
在右侧的Gradle面板Spring -> Tasks -> other -> cglibRepackJar

https://blog.csdn.net/chenweijiSun/article/details/104814564

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容