zoukankan      html  css  js  c++  java
  • gradle+idea配置阅读Spring源码开发环境(解决jar包下载缓慢问题)

    gradle+idea配置阅读Spring源码开发环境(解决jar包下载缓慢问题)
    阅读源码是学习Spring的最好的方法,但是Spring不是使用maven进行构建,而是使用gradle进行构建的。gradle大家可以理解为和maven一样的东西,整体思想和maven也差不多。
    很多博客都大概总结了使用gradle和idea编译spring的步骤,在编译中需要下载非常多的jar包,但是由于一些众所周知的原因,编译很容易失败,而且非常缓慢。这就是本文要解决的问题。
    0 前提
    进行安装之前,请确保你的jdk环境是1.8+,并且成功设置好了环境变量。
    使用 java -version 进行检查
    我的环境:
     IntelliJ IDEA 2019.3.2 (Ultimate Edition)
        JDK 1.8.0
    1. 安装gradle
    spring 源码是使用gradle进行管理的,所以首先得下载安装好gradle 并设置好环境变量。
    1.1 下载gradle
    建议到下面的网址中下载,比官网点击download 要快很多
    网址:https://services.gradle.org/distributions/
    我下载的是gradle-5.6.all.zip

     

    下载完之后 解压到你想要的文件夹中,注意路径不要出现中文。

    1.2 配置环境变量

    linux和mac中在~/.bashrc 中配置 并且保存设置

    # 配置gradle环境变量
    export gradle_home=/usr/local/gradle-5.6/bin
    export PATH=$PATH:$gradle_home

    windows中
    假设windows安装在 E:install-devgradle-5.6.3 ## 修改为自己的路径

     在path中添加下列信息

     1.3 查看是否配置成功

    gradle -v

    1.4 配置gradle,加速

    在gradle根目录:init.d下,新建一个:init.gradle 文件,添加以下内容

    设置gradle的源 为阿里云

    allprojects{
       repositories {
           def REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public/'
           all { ArtifactRepository repo ->
               def url = repo.url.toString()
               if ((repo instanceof MavenArtifactRepository) && (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        }
       }}

    2. 下载spring 源码
    2.1 下载源码

    网址:https://github.com/spring-projects/spring-framework/tree/5.0.x
    
    我下载的是spring 5.0的源码 可以使用 git下载
    
    git https://github.com/spring-projects/spring-framework.git
    
    如果比较慢,可以直接下载zip包,解压即可

    2.2 修改配置

    配置spring源码根目录下的build.gradle文件:
    注释configurations.all (注意不要注释错了,这里要小心,截图如下)
    同时,添加一段配置

    allprojects {
        repositories {
            maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
        }
    }

     2.3 开始编译
    在spring源码根目录下
    windows使用命令 : gradlew :spring-oxm:compileTestJava
    linux和mac使用命令: ./gradlew :spring-oxm:compileTestJava

    体验飞一样的感觉吧!我第一次编译只用了2分钟,和其他教程动不动failed完全不一样!

     3. 导入idea

    快成功了,但是还需要配置!

    • File -> New -> Project from Existing Sources -> 找到选择spring-framework源码

    • 然后配置项目的gradle 为自己的下载安装的gradle,不用使用idea自带的

      这个时候 idea应该开始自动build了,然而发现 还是很慢。这里还有两处配置

      修改spring源码根目录中的gradle.properties文件

      org.gradle.daemon=true
      org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
      org.gradle.parallel=true
      org.gradle.configureondemand=true

       修改spring源码根目录中的setting.gradle文件,在第一行添加下面的配置,注意是在第一行 添加!不是覆盖所有!

    • # 在第一行插入
      pluginManagement {
          repositories {
              maven { url "https://maven.aliyun.com/repository/public" }
              gradlePluginPortal()
              maven { url 'https://repo.spring.io/plugins-release' }
          }
      }

       最后,保存好一切设置后,建议重启idea,重新打开项目,然后就会发现,飞一样的速度,编译通过!





  • 相关阅读:
    微信输入文字和更多切换时不改变下面layout大小
    bitmap1 = bitmap2导致bitmap1不能使用一致报回收错误解决
    Mac下命令行打开Sublime
    android.content.res.Resources$NotFoundException:String resource ID #0x86
    SEGGER RTT STOP/SLEEP 模式下使用
    STM32中用 stop 模式 配合低功耗模式下的自动唤醒(AWU) 能否实现FreeRTOS tickless 模式
    NRF52832 能烧写代码 但是不运行 ,是因为没有烧写协议栈
    NRF52832 Logger module 设置
    jlink RTT 打印 BUG , FreeRTOS 在开启 tickless 模式下 无法使用的问题
    gattAttribute_t 含义 中文解释
  • 原文地址:https://www.cnblogs.com/zouhong/p/14599035.html
Copyright © 2011-2022 走看看