intellij idea gradle 導入 spring源碼 問題記錄


環境:

  windows 7

  oracle jdk 1.8

  intellij idea 2019.3.1

  spring-framework 5.1.22.RELEASE

 

步驟:

1: 下載解壓spring zip 包(githup或者gitee下載)

 

 

2: 修改spring-framework源碼配置信息

打開項目子目錄 >>> ./gradle

 

 

 

修改docs.gradle文件 >>> dokka方法以及asciidoctor方法注釋

 

 

 

 

注: 

task schemaZip(type: Zip) 在某些版本該任務中是沒有兼容window的路徑符號,需要手動修改一下

 

 

 修改如下  >>>>>>>

task schemaZip(type: Zip) {
    group = "Distribution"
    baseName = "spring-framework"
    classifier = "schema"
    description = "Builds -${classifier} archive containing all " +
            "XSDs for deployment at https://springframework.org/schema."
    duplicatesStrategy 'exclude'
    moduleProjects.each { subproject ->
        def Properties schemas = new Properties();

        subproject.sourceSets.main.resources.find {
            (it.path.endsWith("META-INF/spring.schemas") || it.path.endsWith("META-INF\\spring.schemas"))
        }?.withInputStream { schemas.load(it) }

        for (def key : schemas.keySet()) {
            def shortName = key.replaceAll(/http.*schema.(.*).spring-.*/, '$1')
            assert shortName != key
            File xsdFile = subproject.sourceSets.main.resources.find {
                (it.path.endsWith(schemas.get(key)) || it.path.endsWith(schemas.get(key).replaceAll('\\/','\\\\')))
            }
            assert xsdFile != null
            into (shortName) {
                from xsdFile.path
            }
        }
    }
}

 

 

 

先留一個坑 。。。。

 

 

 

 

 

 

 

 

3.導入項目 >>> 選中build.gradle右鍵import

 

漫長的等待中 。。。。

 

 

 

 

一般情況下導入是可以成功的,但 。。

exception during working with external system: java.lang.AssertionError
    at org.jetbrains.plugins.gradle.service.project.BaseGradleProjectResolverExtension.createModule(BaseGradleProjectResolverExtension.java:154)
    at org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension.createModule(AbstractProjectResolverExtension.java:86)
    at org.jetbrains.kotlin.idea.configuration.KotlinMPPGradleProjectResolver.createModule(KotlinMPPGradleProjectResolver.kt:67)
    at org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension.createModule(AbstractProjectResolverExtension.java:86)
    at org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension.createModule(AbstractProjectResolverExtension.java:86)
    at org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension.createModule(AbstractProjectResolverExtension.java:86)
    at org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension.createModule(AbstractProjectResolverExtension.java:86)
    at com.android.tools.idea.gradle.project.sync.idea.AndroidGradleProjectResolver.createModule(AndroidGradleProjectResolver.java:165)
    at org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension.createModule(AbstractProjectResolverExtension.java:86)
    at org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension.createModule(AbstractProjectResolverExtension.java:86)
    at org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension.createModule(AbstractProjectResolverExtension.java:86)
    at org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension.createModule(AbstractProjectResolverExtension.java:86)
    at org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension.createModule(AbstractProjectResolverExtension.java:86)
    at org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension.createModule(AbstractProjectResolverExtension.java:86)
    at org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension.createModule(AbstractProjectResolverExtension.java:86)
    at org.jetbrains.kotlin.android.configure.KotlinAndroidMPPGradleProjectResolver.createModule(KotlinAndroidMPPGradleProjectResolver.kt:45)
    at org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension.createModule(AbstractProjectResolverExtension.java:86)
    at org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension.createModule(AbstractProjectResolverExtension.java:86)
    at org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension.createModule(AbstractProjectResolverExtension.java:86)
    at org.jetbrains.plugins.gradle.service.project.TracedProjectResolverExtension.createModule(TracedProjectResolverExtension.java:45)
    at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver.doResolveProjectInfo(GradleProjectResolver.java:344)
    
... ...

 

 

這個是因為spring配置的gradle版本問題

 

 

 

 

打開./gradle/wrapper/gradle-wrapper.properties文件

修改為5.x版本,博主修改為gradle-5.5.1-all.zip //all包含源碼

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.5.1-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

成功導入展示:

 

 

 

 

4. 編譯源代碼

這里先看一下spring的markdown文檔

 

 

 大致意思是需要先預編譯`spring-core`、`spring-oxm`以及`spring-aspects`。

 先直接編譯`spring-oxm`它依賴了`spring-core`

 gradle窗口中選擇spring-oxm > Tasks > other > compileTestJava

然后是`spring-aspects` >>>

先打開 Project Structure窗口:

 

 
        

 可以發現只有Kotlin的,還沒有AspecJ;這時我們需要加上

 

   

 

 加上這兩個AspecJ即可。

 

spring-aspects > Tasks > other > compileTestJava

如果失敗請先安裝ajc編譯器 https://www.eclipse.org/aspectj/downloads.php

 

 點擊Test 

 

 

再生成即可

 

 

 

 

 

 

最后再多嘴啰嗦一句

 

 

這里默認是沒有勾上的,如果你自己勾上了。。。

那么spring-aspectjs配置步驟就不生效了,因為之前配置沒有寫入 .iml文件中。

去掉勾選並刪除 .idea文件下的modules文件夾試試吧

 

 還有就是build.gradle 腳本是可以查看源碼和語法提示的

 

 只需要在修改gradle-wrapper.properties步驟中改好后,執行一下gradlew.bat文件就好了。

 

 

 

 

 

----------------------------------------------------------------------------------

目前遇到問題就這幾點,希望能幫助到大家。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM