Added ability to pass command-line args to Gradle on project sync/refresh.

This is necessary for passing project properties when syncing and
building Gradle-based Android projects.

Change-Id: I5db0878f473edde36ab9f625e112ea90162ddd5a
This commit is contained in:
Alex Ruiz
2014-06-09 14:34:11 +04:00
committed by Vladislav.Soroka
parent e61c327775
commit 1dc83a996f
4 changed files with 19 additions and 1 deletions
@@ -137,6 +137,12 @@ public abstract class AbstractProjectResolverExtension implements GradleProjectR
return Collections.emptyList();
}
@NotNull
@Override
public List<String> getExtraCommandLineArgs() {
return Collections.emptyList();
}
@NotNull
@Override
public ExternalSystemException getUserFriendlyError(@NotNull Throwable error,
@@ -342,6 +342,12 @@ public class BaseGradleProjectResolverExtension implements GradleProjectResolver
return Collections.emptyList();
}
@NotNull
@Override
public List<String> getExtraCommandLineArgs() {
return Collections.emptyList();
}
@NotNull
@Override
public ExternalSystemException getUserFriendlyError(@NotNull Throwable error,
@@ -144,6 +144,8 @@ public class GradleProjectResolver implements ExternalSystemProjectResolver<Grad
final ProjectImportAction projectImportAction = new ProjectImportAction(resolverCtx.isPreviewMode());
final List<KeyValue<String, String>> extraJvmArgs = new ArrayList<KeyValue<String, String>>();
final List<String> commandLineArgs = ContainerUtil.newArrayList();
for (GradleProjectResolverExtension resolverExtension = projectResolverChain;
resolverExtension != null;
resolverExtension = resolverExtension.getNext()) {
@@ -155,6 +157,8 @@ public class GradleProjectResolver implements ExternalSystemProjectResolver<Grad
projectImportAction.addExtraProjectModelClasses(resolverExtension.getExtraProjectModelClasses());
// collect extra JVM arguments provided by gradle project resolver extensions
extraJvmArgs.addAll(resolverExtension.getExtraJvmArgs());
// collect extra command-line arguments
commandLineArgs.addAll(resolverExtension.getExtraCommandLineArgs());
}
final ParametersList parametersList = new ParametersList();
@@ -165,7 +169,6 @@ public class GradleProjectResolver implements ExternalSystemProjectResolver<Grad
BuildActionExecuter<ProjectImportAction.AllModels> buildActionExecutor = resolverCtx.getConnection().action(projectImportAction);
final List<String> commandLineArgs = ContainerUtil.newArrayList();
// TODO [vlad] remove the check
if (!GradleEnvironment.DISABLE_ENHANCED_TOOLING_API) {
File initScript = GradleExecutionHelper.generateInitScript(isBuildSrcProject);
@@ -101,6 +101,9 @@ public interface GradleProjectResolverExtension extends ParametersEnhancer {
@NotNull
List<KeyValue<String, String>> getExtraJvmArgs();
@NotNull
List<String> getExtraCommandLineArgs();
@NotNull
ExternalSystemException getUserFriendlyError(@NotNull Throwable error, @NotNull String projectPath, @Nullable String buildFilePath);