public Gradle newInstance(StartParameter startParameter) { loggingConfigurer.configure(startParameter.getLogLevel()); ImportsReader importsReader = new ImportsReader(startParameter.getDefaultImportsFile()); CachePropertiesHandler cachePropertiesHandler = new DefaultCachePropertiesHandler(); ISettingsFinder settingsFinder = new EmbeddedScriptSettingsFinder( new DefaultSettingsFinder( WrapUtil.<ISettingsFileSearchStrategy>toList( new MasterDirSettingsFinderStrategy(), new ParentDirSettingsFinderStrategy()))); ConfigurationContainerFactory configurationContainerFactory = new DefaultConfigurationContainerFactory(); DefaultInternalRepository internalRepository = new DefaultInternalRepository(); DependencyFactory dependencyFactory = new DefaultDependencyFactory( WrapUtil.<IDependencyImplementationFactory>toSet(new ModuleDependencyFactory()), new DefaultClientModuleFactory(), new DefaultProjectDependencyFactory()); ResolverFactory resolverFactory = new DefaultResolverFactory(); DefaultProjectEvaluator projectEvaluator = new DefaultProjectEvaluator( importsReader, new DefaultScriptProcessor( new DefaultScriptCompilationHandler( cachePropertiesHandler, new BuildScriptTransformer()), startParameter.getCacheUsage()), new DefaultProjectScriptMetaData()); Gradle gradle = new Gradle( startParameter, settingsFinder, new DefaultGradlePropertiesLoader(), new ScriptLocatingSettingsProcessor( new PropertiesLoadingSettingsProcessor( new ScriptEvaluatingSettingsProcessor( new DefaultSettingsScriptMetaData(), new DefaultScriptProcessor( new DefaultScriptCompilationHandler(cachePropertiesHandler), startParameter.getCacheUsage()), importsReader, new SettingsFactory( new DefaultProjectDescriptorRegistry(), dependencyFactory, new DefaultRepositoryHandler(resolverFactory, null), configurationContainerFactory, internalRepository, new BuildSourceBuilder( new DefaultGradleFactory( new LoggingConfigurer() { public void configure(LogLevel logLevel) { // do nothing } }), new DefaultCacheInvalidationStrategy()))))), new BuildLoader( new ProjectFactory( new TaskFactory(), configurationContainerFactory, dependencyFactory, new DefaultRepositoryHandlerFactory(resolverFactory), new DefaultPublishArtifactFactory(), internalRepository, projectEvaluator, new PluginRegistry(startParameter.getPluginPropertiesFile()), startParameter.getBuildScriptSource(), new DefaultAntBuilderFactory(new AntLoggingAdapter())), internalRepository), new BuildConfigurer(new ProjectDependencies2TaskResolver())); gradle.addBuildListener(internalRepository); gradle.addBuildListener(projectEvaluator); return gradle; }