专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 编程

Gradle源码1

发布时间:2011-06-30 11:39:55 文章来源:www.iduyao.cn 采编人员:星星草
Gradle源码一

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.getRootClassLoaderScope());
        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;
    }

从注释上我们可以看出gradle的几个关键步骤

A. Evaluate init scripts

1.InitScriptHandler 通过

    protected InitScriptHandler createInitScriptHandler() {
        return new InitScriptHandler(
                new DefaultInitScriptProcessor(
                        get(ScriptPluginFactory.class),
                        get(ScriptHandlerFactory.class)
                )
        );
    }
指定了
DefaultInitScriptProcessor <span style="font-family: Arial, Helvetica, sans-serif;">对象做它的 processor</span>


2.指定Script finder  (in org.gradle.startParameter.java)

从 C:Usersxxx.gradleinit.gradle     <-USER_HOME

C:Usersxxx.gradleinit.d  文件夹中endswith  ".gradle"   <- USER_HOME

C:gradle-2.2.1init.d 文件夹中  endswith  ".gradle"    <-  GRADLE_HOME



3.调用DefaultInitScriptProcessor.processs 函数处理


有个临时文件 C:Usersxxx.gradlecaches2.2.1scripts_333_7ego0r9xq73y22y1atyq8h6q0InitScriptinitscriptclasses


友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: