Key code executed by Gradle Org.gradle.initialization.DefaultGradleLauncher.java
private void Dobuildstages (Stage upTo) {//Evaluate init scripts initscripthandler.executescripts (gradle ); Evaluate settings script settingsinternal settings = settingshandler.findandloadsettings (Gradle); buildlistener.settingsevaluated (settings); Load Build Buildloader.load (Settings.getrootproject (), Settings.getdefaultproject (), Gradle, SETTINGS.GETROOTCLA Ssloaderscope ()); Buildlistener.projectsloaded (Gradle); Configure build Buildconfigurer.configure (Gradle); if (!gradle.getstartparameter (). Isconfigureondemand ()) {buildlistener.projectsevaluated (gradle); } modelconfigurationlistener.onconfigure (Gradle); if (UpTo = = stage.configure) {return; }//Populate task Graph Buildexecuter.select (gradle); if (Gradle.getstartparameter (). Isconfigureondemand ()) {buildlistener.projectsevaluated (gradle); }//ExeCute build buildexecuter.execute (); Taskscompletionlistener.ontasksfinished (Gradle); Assert upTo = = Stage.build; }
From the annotations we can see several key steps of Gradle
A. Evaluate Init scripts
1.InitScriptHandler through
Protected Initscripthandler Createinitscripthandler () { return new Initscripthandler ( new Defaultinitscriptprocessor ( get (scriptpluginfactory.class), get (scripthandlerfactory.class) ) ); }
Specify a
Defaultinitscriptprocessor <span style= "font-family:arial, Helvetica, Sans-serif;" > object to do its processor</span>
2. Specify Script finder (in Org.gradle.startParameter.java)
From C:\Users\xxx\.gradle\init.gradle <-user_home
C:\Users\xxx\.gradle\init.d folder EndsWith ". Gradle" <-user_home
C:\gradle-2.2.1\init.d folder EndsWith ". Gradle" <-gradle_home
3. Call the DEFAULTINITSCRIPTPROCESSOR.PROCESSS function to handle
Gradle Source One