15. Gradle编译其他应用代码流程(四) - Configure过程

接上一遍Load过程的博客来继续  14. Gradle编译其他应用代码流程(三) - Load过程


这一边继续讲Configure过程。


Configure过程源代码

文件路径:

subprojects\core\src\main\java\org\gradle\initialization\DefaultGradleLauncher.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
private  void  doBuildStages(Stage upTo) {
         ....
 
         if  (stage == Stage.Load) {
             // Configure build
             buildOperationExecutor.run( "Configure build" new  Runnable() {
                 @Override
                 public  void  run() {
                     buildConfigurer.configure(gradle);
 
                     if  (!gradle.getStartParameter().isConfigureOnDemand()) {
                         buildListener.projectsEvaluated(gradle);
                     }
 
                     modelConfigurationListener.onConfigure(gradle);
                 }
             });
 
             stage = Stage.Configure;
         }
         ...
}


一. 首次看buildConfigurer.configure(gradle)


文件路径:

subprojects\core\src\main\java\org\gradle\configuration\DefaultBuildConfigurer.java

1
2
3
4
5
public  void  configure(GradleInternal gradle) {
         ...
         projectConfigurer.configureHierarchy(gradle.getRootProject());
         
     }


文件路径:

subprojects\core\src\main\java\org\gradle\execution\TaskPathProjectEvaluator.java

1
2
3
4
5
6
7
8
9
10
11
12
public  class  TaskPathProjectEvaluator  implements  ProjectConfigurer {
     ...
     public  void  configureHierarchy(ProjectInternal project) {
         project.evaluate();
         for  (Project sub : project.getSubprojects()) {
             if  (cancellationToken.isCancellationRequested()) {
                 throw  new  BuildCancelledException();
             }
             ((ProjectInternal) sub).evaluate();
         }
     }
}


在configureHierarchy里面,首先执行根项目的evaluate(),然后循环执行它的子项目的evaluate()。

就像往下面看:

文件路径:

subprojects\core\src\main\java\org\gradle\api\internal\project\DefaultProject.java

1
2
3
4
5
public  DefaultProject evaluate() {
         getProjectEvaluator().evaluate( this , state);
         state.rethrowFailure();
         return  this ;
     }



subprojects\core\src\main\java\org\gradle\configuration\project\LifecycleProjectEvaluator.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public  void  evaluate(ProjectInternal project, ProjectStateInternal state) {
         ...
 
         state.setExecuting( true );
         try  {
             delegate.evaluate(project, state);
         catch  (Exception e) {
             addConfigurationFailure(project, state, e);
         finally  {
             state.setExecuting( false );
             state.executed();
             notifyAfterEvaluate(listener, project, state);
         }
     }


subprojects\core\src\main\java\org\gradle\configuration\project\ConfigureActionsProjectEvaluator.java

1
2
3
4
5
6
7
8
9
public  class  ConfigureActionsProjectEvaluator  implements  ProjectEvaluator {
     ...
 
     public  void  evaluate(ProjectInternal project, ProjectStateInternal state) {
         for  (ProjectConfigureAction configureAction : configureActions) {
             configureAction.execute(project);
         }
     }
}


subprojects\core\src\main\java\org\gradle\configuration\project\BuildScriptProcessor.java

1
2
3
4
5
6
7
8
9
10
public  class  BuildScriptProcessor  implements  ProjectConfigureAction {
     ...
 
     public  void  execute(ProjectInternal project) {
         ...
             ScriptPlugin configurer = configurerFactory.create(project.getBuildScriptSource(), project.getBuildscript(), project.getClassLoaderScope(), project.getBaseClassLoaderScope(),  true );
             configurer.apply(project);
         ...
     }
}


接下来就会调用到ScriptPluginImpl.apply,这是我们上一遍讲过的。会去应用这个配置文件。具体怎么应用,需要看它生成的class文件。

文件路径在

D:\gradle_jar_cache\caches\3.1-snapshot-1\scripts-remapped\quality_cjfs2g3ij3bqjjsmf9bhahspf\2n69on6v0v04xd0c8c445muqy\dsld7eae713beda1bd9e69f8461da734880\classes


截个class内容的图:


wKiom1kpHHWwOyVHAAEvQigKHfs515.png-wh_50

 

这是因为我们的gradle文件配置了3个plugin

1
2
3
apply plugin:  'checkstyle'
apply plugin:  'pmd'
apply plugin:  'findbugs'


所以,在configure阶段,它会去解析我们的配置文件,并且去加载我们配置的plugin插件。

以加载pmd插件为例,贴一个调用堆栈:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
java.lang.Exception: Sandy findPluginDescriptor pluginId: org.gradle.pmd
     at org.gradle.api.internal.plugins.ClassloaderBackedPluginDescriptorLocator.findPluginDescriptor(ClassloaderBackedPluginDescriptorLocator.java:31)
     at org.gradle.api.internal.plugins.DefaultPluginRegistry$1.load(DefaultPluginRegistry.java:59)
     at org.gradle.api.internal.plugins.DefaultPluginRegistry$1.load(DefaultPluginRegistry.java:51)
     at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3524)
     at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2317)
     at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2280)
     at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2195)
     at com.google.common.cache.LocalCache.get(LocalCache.java:3934)
     at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3938)
     at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4821)
     at org.gradle.api.internal.plugins.DefaultPluginRegistry.uncheckedGet(DefaultPluginRegistry.java:149)
     at org.gradle.api.internal.plugins.DefaultPluginRegistry.lookup(DefaultPluginRegistry.java:138)
     at org.gradle.api.internal.plugins.DefaultPluginRegistry.lookup(DefaultPluginRegistry.java:127)
     at org.gradle.api.internal.plugins.DefaultPluginRegistry.lookup(DefaultPluginRegistry.java:121)
     at org.gradle.api.internal.plugins.DefaultPluginRegistry.lookup(DefaultPluginRegistry.java:121)
     at org.gradle.api.internal.plugins.DefaultPluginRegistry.lookup(DefaultPluginRegistry.java:121)
     at org.gradle.api.internal.plugins.DefaultPluginManager.apply(DefaultPluginManager.java:108)
     at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.applyType(DefaultObjectConfigurationAction.java:113)
     at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.access$200(DefaultObjectConfigurationAction.java:36)
     at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction$3.run(DefaultObjectConfigurationAction.java:80)
     at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.execute(DefaultObjectConfigurationAction.java:136)
     at org.gradle.groovy.scripts.DefaultScript.apply(DefaultScript.java:114)
     at org.gradle.api.Script$apply$0.callCurrent(Unknown Source)
     at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52)
     at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154)
     at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:166)
     at quality_cjfs2g3ij3bqjjsmf9bhahspf.run(E:\work_space\Android-Prototype\config\quality.gradle:2)
     
     at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:90)
     at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl$2.run(DefaultScriptPluginFactory.java:176)
     at org.gradle.configuration.DefaultScriptTarget.addConfiguration(DefaultScriptTarget.java:74)
     at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:181)
     at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.applyScript(DefaultObjectConfigurationAction.java:102)
     at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.access$000(DefaultObjectConfigurationAction.java:36)
     at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction$1.run(DefaultObjectConfigurationAction.java:62)
     at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.execute(DefaultObjectConfigurationAction.java:136)
     at org.gradle.api.internal.project.AbstractPluginAware.apply(AbstractPluginAware.java:44)
     at org.gradle.api.internal.project.ProjectScript.apply(ProjectScript.java:34)
     at org.gradle.api.Script$apply$0.callCurrent(Unknown Source)
     at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52)
     at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154)
     at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:166)
     at build_840r8chxz90tc75jy1mlavsji.run(E:\work_space\Android-Prototype\app\build.gradle:3)
     at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:90)
     at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl$2.run(DefaultScriptPluginFactory.java:176)
     at org.gradle.configuration.ProjectScriptTarget.addConfiguration(ProjectScriptTarget.java:77)
     at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:181)
     at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:38)
     at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:25)
     at org.gradle.configuration.project.ConfigureActionsProjectEvaluator.evaluate(ConfigureActionsProjectEvaluator.java:34)
     at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:55)
     at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:573)
     at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:125)
     at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:47)
     at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:38)
     at org.gradle.initialization.DefaultGradleLauncher$2.run(DefaultGradleLauncher.java:151)
     at org.gradle.internal.Factories$1.create(Factories.java:22)
     at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
     at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:53)
     at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:148)
     at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:33)
     at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:112)
     at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:106)
     at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
     at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:63)
     at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:106)
     at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:92)
     at org.gradle.launcher.exec.GradleBuildController.run(GradleBuildController.java:67)
     at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:31)
     at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:43)
     at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:42)
     at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)
     at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:79)
     at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:51)
     at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:54)
     at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:173)
     at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:250)
     at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:217)
     at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:33)
     at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24)
     at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
     at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
     at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:210)
     at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:174)
     at org.gradle.launcher.Main.doAction(Main.java:33)
     at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
     at java.lang.reflect.Method.invoke(Method.java:483)
     at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:60)
     at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:37)
     at org.gradle.launcher.GradleMain.main(GradleMain.java:24)


最后是在ClassloaderBackedPluginDescriptorLocator.findPluginDescriptor方法里面load plugin。


文件路径:

subprojects\core\src\main\java\org\gradle\api\internal\plugins\ClassloaderBackedPluginDescriptorLocator.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public  class  ClassloaderBackedPluginDescriptorLocator  implements  PluginDescriptorLocator {
 
     ...
 
     public  PluginDescriptor findPluginDescriptor(String pluginId) {
         URL resource = classLoader.getResource( "META-INF/gradle-plugins/"  + pluginId +  ".properties" );
         Exception ex =  new  Exception( "Sandy findPluginDescriptor pluginId: "  + pluginId);
         ex.printStackTrace();
         if  (resource ==  null ) {
             return  null ;
         else  {
             return  new  PluginDescriptor(resource);
         }
     }
 
}


它会去找META-INF/gradle-plugins/'pluginid'.properties这个文件。

以pmd为例, pmd的这个配置文件路径是

subprojects\code-quality\src\main\resources\META-INF\gradle-plugins\org.gradle.pmd.properties


wKioL1kpE4DQ3xduAACsz2yja1w813.png-wh_50


内容是 implementation-class=org.gradle.api.plugins.quality.PmdPlugin  它表示pmd插件的描述类是PmdPlugin.java,需要去加载这个类。



二. 加载task

在Configure阶段会load所需要的task,以pmd为例,下面是调用堆栈:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
10:10:14.934 [ERROR] [system.err] java.lang.Exception: Sandy pmd init
10:10:14.934 [ERROR] [system.err]    at org.gradle.api.plugins.quality.Pmd.< init >(Pmd.java:68)
10:10:14.934 [ERROR] [system.err]    at org.gradle.api.plugins.quality.Pmd_Decorated.< init >(Unknown Source)
10:10:14.934 [ERROR] [system.err]    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
10:10:14.934 [ERROR] [system.err]    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
10:10:14.934 [ERROR] [system.err]    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
10:10:14.934 [ERROR] [system.err]    at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
10:10:14.934 [ERROR] [system.err]    at org.gradle.api.internal.DependencyInjectingInstantiator.newInstance(DependencyInjectingInstantiator.java:56)
10:10:14.934 [ERROR] [system.err]    at org.gradle.api.internal.ClassGeneratorBackedInstantiator.newInstance(ClassGeneratorBackedInstantiator.java:36)
10:10:14.935 [ERROR] [system.err]    at org.gradle.api.internal.project.taskfactory.TaskFactory$1.call(TaskFactory.java:121)
10:10:14.935 [ERROR] [system.err]    at org.gradle.api.internal.project.taskfactory.TaskFactory$1.call(TaskFactory.java:118)
10:10:14.935 [ERROR] [system.err]    at org.gradle.util.GUtil.uncheckedCall(GUtil.java:401)
10:10:14.935 [ERROR] [system.err]    at org.gradle.api.internal.AbstractTask.injectIntoNewInstance(AbstractTask.java:176)
10:10:14.935 [ERROR] [system.err]    at org.gradle.api.internal.project.taskfactory.TaskFactory.create(TaskFactory.java:118)
10:10:14.935 [ERROR] [system.err]    at org.gradle.api.internal.project.taskfactory.TaskFactory.createTask(TaskFactory.java:77)
10:10:14.935 [ERROR] [system.err]    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory.createTask(AnnotationProcessingTaskFactory.java:46)
10:10:14.935 [ERROR] [system.err]    at org.gradle.api.internal.project.taskfactory.DependencyAutoWireTaskFactory.createTask(DependencyAutoWireTaskFactory.java:39)
10:10:14.935 [ERROR] [system.err]    at org.gradle.api.internal.tasks.DefaultTaskContainer.create(DefaultTaskContainer.java:63)
10:10:14.935 [ERROR] [system.err]    at org.gradle.api.internal.project.DefaultProject.task(DefaultProject.java:976)
10:10:14.935 [ERROR] [system.err]    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
10:10:14.935 [ERROR] [system.err]    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
10:10:14.935 [ERROR] [system.err]    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
10:10:14.935 [ERROR] [system.err]    at java.lang.reflect.Method.invoke(Method.java:483)
10:10:14.935 [ERROR] [system.err]    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
10:10:14.935 [ERROR] [system.err]    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
10:10:14.935 [ERROR] [system.err]    at org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:382)
10:10:14.935 [ERROR] [system.err]    at org.gradle.internal.metaobject.BeanDynamicObject.invokeMethod(BeanDynamicObject.java:170)
10:10:14.935 [ERROR] [system.err]    at org.gradle.internal.metaobject.CompositeDynamicObject.invokeMethod(CompositeDynamicObject.java:96)
10:10:14.935 [ERROR] [system.err]    at org.gradle.internal.metaobject.MixInClosurePropertiesAsMethodsDynamicObject.invokeMethod(MixInClosurePropertiesAsMethodsDynamicObject.java:30)
10:10:14.935 [ERROR] [system.err]    at org.gradle.internal.metaobject.AbstractDynamicObject.invokeMethod(AbstractDynamicObject.java:163)
10:10:14.935 [ERROR] [system.err]    at org.gradle.groovy.scripts.BasicScript.methodMissing(BasicScript.java:83)
10:10:14.935 [ERROR] [system.err]    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
10:10:14.935 [ERROR] [system.err]    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
10:10:14.935 [ERROR] [system.err]    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
10:10:14.935 [ERROR] [system.err]    at java.lang.reflect.Method.invoke(Method.java:483)
10:10:14.935 [ERROR] [system.err]    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
10:10:14.935 [ERROR] [system.err]    at groovy.lang.MetaClassImpl.invokeMissingMethod(MetaClassImpl.java:941)
10:10:14.935 [ERROR] [system.err]    at groovy.lang.MetaClassImpl.invokePropertyOrMissing(MetaClassImpl.java:1264)
10:10:14.935 [ERROR] [system.err]    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1217)
10:10:14.935 [ERROR] [system.err]    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024)
10:10:14.935 [ERROR] [system.err]    at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:69)
10:10:14.935 [ERROR] [system.err]    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52)
10:10:14.935 [ERROR] [system.err]    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154)
10:10:14.935 [ERROR] [system.err]    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:182)
10:10:14.935 [ERROR] [system.err]    at quality_cjfs2g3ij3bqjjsmf9bhahspf.run(E:\work_space\Android-Prototype\config\quality.gradle:49)
10:10:14.935 [ERROR] [system.err]    at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:90)
10:10:14.936 [ERROR] [system.err]    at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl$2.run(DefaultScriptPluginFactory.java:176)
10:10:14.936 [ERROR] [system.err]    at org.gradle.configuration.DefaultScriptTarget.addConfiguration(DefaultScriptTarget.java:74)
10:10:14.936 [ERROR] [system.err]    at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:181)
10:10:14.936 [ERROR] [system.err]    at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.applyScript(DefaultObjectConfigurationAction.java:102)
10:10:14.936 [ERROR] [system.err]    at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.access$000(DefaultObjectConfigurationAction.java:36)
10:10:14.936 [ERROR] [system.err]    at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction$1.run(DefaultObjectConfigurationAction.java:62)
10:10:14.936 [ERROR] [system.err]    at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.execute(DefaultObjectConfigurationAction.java:136)
10:10:14.936 [ERROR] [system.err]    at org.gradle.api.internal.project.AbstractPluginAware.apply(AbstractPluginAware.java:44)
10:10:14.936 [ERROR] [system.err]    at org.gradle.api.internal.project.ProjectScript.apply(ProjectScript.java:34)
10:10:14.936 [ERROR] [system.err]    at org.gradle.api.Script$apply$0.callCurrent(Unknown Source)
10:10:14.936 [ERROR] [system.err]    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52)
10:10:14.936 [ERROR] [system.err]    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154)
10:10:14.936 [ERROR] [system.err]    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:166)
10:10:14.936 [ERROR] [system.err]    at build_840r8chxz90tc75jy1mlavsji.run(E:\work_space\Android-Prototype\app\build.gradle:3)
10:10:14.936 [ERROR] [system.err]    at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:90)
10:10:14.936 [ERROR] [system.err]    at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl$2.run(DefaultScriptPluginFactory.java:176)
10:10:14.936 [ERROR] [system.err]    at org.gradle.configuration.ProjectScriptTarget.addConfiguration(ProjectScriptTarget.java:77)
10:10:14.936 [ERROR] [system.err]    at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:181)
10:10:14.936 [ERROR] [system.err]    at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:38)
10:10:14.936 [ERROR] [system.err]    at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:25)
10:10:14.936 [ERROR] [system.err]    at org.gradle.configuration.project.ConfigureActionsProjectEvaluator.evaluate(ConfigureActionsProjectEvaluator.java:34)
10:10:14.936 [ERROR] [system.err]    at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:55)
10:10:14.936 [ERROR] [system.err]    at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:573)
10:10:14.936 [ERROR] [system.err]    at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:125)
10:10:14.936 [ERROR] [system.err]    at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:47)
10:10:14.936 [ERROR] [system.err]    at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:38)
10:10:14.936 [ERROR] [system.err]    at org.gradle.initialization.DefaultGradleLauncher$2.run(DefaultGradleLauncher.java:151)
10:10:14.936 [ERROR] [system.err]    at org.gradle.internal.Factories$1.create(Factories.java:22)
10:10:14.936 [ERROR] [system.err]    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
10:10:14.936 [ERROR] [system.err]    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:53)
10:10:14.936 [ERROR] [system.err]    at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:148)
10:10:14.936 [ERROR] [system.err]    at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:33)
10:10:14.936 [ERROR] [system.err]    at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:112)
10:10:14.936 [ERROR] [system.err]    at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:106)
10:10:14.936 [ERROR] [system.err]    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
10:10:14.937 [ERROR] [system.err]    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:63)
10:10:14.937 [ERROR] [system.err]    at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:106)
10:10:14.937 [ERROR] [system.err]    at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:92)
10:10:14.937 [ERROR] [system.err]    at org.gradle.launcher.exec.GradleBuildController.run(GradleBuildController.java:67)
10:10:14.937 [ERROR] [system.err]    at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:31)
10:10:14.937 [ERROR] [system.err]    at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:43)
10:10:14.937 [ERROR] [system.err]    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:42)
10:10:14.937 [ERROR] [system.err]    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)
10:10:14.937 [ERROR] [system.err]    at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:79)
10:10:14.937 [ERROR] [system.err]    at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:51)
10:10:14.937 [ERROR] [system.err]    at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:54)
10:10:14.937 [ERROR] [system.err]    at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:173)
10:10:14.937 [ERROR] [system.err]    at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:250)
10:10:14.937 [ERROR] [system.err]    at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:217)
10:10:14.937 [ERROR] [system.err]    at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:33)
10:10:14.937 [ERROR] [system.err]    at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24)
10:10:14.937 [ERROR] [system.err]    at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
10:10:14.937 [ERROR] [system.err]    at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
10:10:14.937 [ERROR] [system.err]    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:210)
10:10:14.937 [ERROR] [system.err]    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:174)
10:10:14.937 [ERROR] [system.err]    at org.gradle.launcher.Main.doAction(Main.java:33)
10:10:14.937 [ERROR] [system.err]    at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
10:10:14.937 [ERROR] [system.err]    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
10:10:14.937 [ERROR] [system.err]    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
10:10:14.937 [ERROR] [system.err]    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
10:10:14.937 [ERROR] [system.err]    at java.lang.reflect.Method.invoke(Method.java:483)
10:10:14.937 [ERROR] [system.err]    at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:60)
10:10:14.937 [ERROR] [system.err]    at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:37)
10:10:14.937 [ERROR] [system.err]    at org.gradle.launcher.GradleMain.main(GradleMain.java:24)




三. buildListener.projectsEvaluated发送通知

文件路径:

subprojects\core\src\main\java\org\gradle\initialization\DefaultGradleLauncher.java

1
2
3
if  (!gradle.getStartParameter().isConfigureOnDemand()) {
       buildListener.projectsEvaluated(gradle);
}

发送projectsEvaluated通知



四. 至此Configure阶段完成

这个阶段主要load了配置文件中的各种plugin;另外它的调用方法是通过加载生成的class文件来进行的。

1
D:\gradle_jar_cache\caches\3.1-snapshot-1\scripts-remapped\quality_cjfs2g3ij3bqjjsmf9bhahspf\2n69on6v0v04xd0c8c445muqy\dsld7eae713beda1bd9e69f8461da734880\classes

这样不同的配置文件可以用不同的类来执行加载动作,而代码保持一致。


接下来编译进入build阶段。

1
2
// After this point, the GradleLauncher cannot be reused
stage = Stage.Build;






     本文转自rongwei84n 51CTO博客,原文链接:http://blog.51cto.com/483181/1929709 ,如需转载请自行联系原作者
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值