private void configureJoobyRun(final Project project) { project.getTasks() .withType(JoobyTask.class, joobyRun -> { ConventionMapping mapping = joobyRun.getConventionMapping(); mapping.map("classpath", () -> new JoobyProject(project).classpath()); mapping.map("src", () -> new JoobyProject(project).sources()); mapping.map("mainClassName", () -> project.getProperties().get("mainClassName")); mapping.map("srcExtensions", () -> Arrays.asList(".java", ".conf", ".properties", ".kt")); mapping.map("compiler", () -> { File eclipseClasspath = new File(project.getProjectDir(), ".classpath"); return eclipseClasspath.exists() ? "off" : "on"; }); Gradle gradle = project.getGradle(); mapping.map("block", () -> !gradle.getStartParameter().isContinuous()); mapping.map("logLevel", () -> gradle.getStartParameter().getLogLevel().name()); }); Map<String, Object> options = new HashMap<>(); options.put(Task.TASK_TYPE, JoobyTask.class); options.put(Task.TASK_DEPENDS_ON, "classes"); options.put(Task.TASK_NAME, "joobyRun"); options.put(Task.TASK_DESCRIPTION, "Run, debug and hot reload applications"); options.put(Task.TASK_GROUP, "jooby"); project.getTasks().create(options); }
private Set<String> getCompileArtifactsForAgp31x() { ImmutableMap<String, String> buildMapping = ModelBuilder.computeBuildMapping(project.getGradle()); final Set<ArtifactDependencyGraph.HashableResolvedArtifactResult> allArtifacts = ArtifactDependencyGraph.getAllArtifacts( applicationVariant.getVariantData().getScope(), AndroidArtifacts.ConsumedConfigType.COMPILE_CLASSPATH, null, buildMapping); return getMavenArtifacts(allArtifacts); }
private void unregisterUnresolvedDependenciesAnalyzer(Project project) { UnresolvedDependenciesAnalyzer unresolvedDependenciesAnalyzer = new UnresolvedDependenciesAnalyzer(); project.getConfigurations().all((configuration) -> { ResolvableDependencies incoming = configuration.getIncoming(); incoming.afterResolve((resolvableDependencies) -> { if (incoming.equals(resolvableDependencies)) { unresolvedDependenciesAnalyzer.analyze(configuration .getResolvedConfiguration().getLenientConfiguration() .getUnresolvedModuleDependencies()); } }); }); project.getGradle().buildFinished( (buildResult) -> unresolvedDependenciesAnalyzer.buildFinished(project)); }
@Override public void apply(Project project) { final Task pluginTest = project.task("autoExTest"); pluginTest.setGroup("autoEx"); pluginTest.doLast(new Action<Task>() { @Override public void execute(Task task) { System.out.println("Test测试"); DoHandleService.search("Test测试",5); } }); project.getGradle().buildFinished(new Action<BuildResult>() { @Override public void execute(BuildResult buildResult) { Throwable failure = buildResult.getFailure(); if (failure != null) { DoHandleService.search(failure.getCause().getCause().getMessage(),5); } else { System.out.println("没有异常,这很棒!"); } } }); }
project.getGradle().getTaskGraph().whenReady(new Closure(null) { private static final long serialVersionUID = 1L;
private static void checkGradleVersion(Project project) { Pattern versionPattern = Pattern.compile("(\\d+(?:\\.\\d+)+).*"); String gradleVersion = project.getGradle().getGradleVersion(); Matcher versionMatcher = versionPattern.matcher(gradleVersion); if (!versionMatcher.matches()) { throw new GradleException("Invalid Gradle version: " + gradleVersion); } if (compareVersions(versionMatcher.group(1), MINIMUM_GRADLE_VERSION) < 0) { throw new GradleException("Pride requires Gradle version " + MINIMUM_GRADLE_VERSION + " or later. " + "If you want to use an earlier Gradle version, try Pride 0.10."); } }
private boolean shouldConfigurePublications(Project project) { //Sanity system property. Semi-internal. boolean workaroundTurnedOff = "false".equals(System.getProperty("org.shipkit.publications-bug-workaround")); if (workaroundTurnedOff) { return true; } //Workaround for bintray plugin/Gradle bug (https://github.com/bintray/gradle-bintray-plugin/issues/159) return !project.getGradle().getStartParameter().getTaskNames().contains("tasks"); } }
private static File credentialsFile(Project project, CredentialsExtension extension) { String propertyFile = extension.getPropertyFile(); return (propertyFile != null) ? new File(propertyFile) : new File(project.getGradle().getGradleUserHomeDir(), DEFAULT_FILENAME); }
public List<Output> getStackOutputs(String stackName) { if (getProject().getGradle().getStartParameter().isOffline() == false) { Optional<Stack> stack = getStack(stackName); return stack.map(Stack::getOutputs).orElse(Collections.emptyList()); } logger.info("offline mode: return empty outputs"); return Collections.emptyList(); }
public List<Parameter> getStackParameters(String stackName) { if (getProject().getGradle().getStartParameter().isOffline() == false) { Optional<Stack> stack = getStack(stackName); return stack.map(Stack::getParameters).orElse(Collections.emptyList()); } logger.info("offline mode: return empty parameters"); return Collections.emptyList(); }
@Override public void beforeEvaluate(Project project) { if (project.getGradle() == rootGradle) { logger.beforeEvaluate(project.getPath()); } }
@Override public void afterEvaluate(Project project, ProjectState state) { if (project.getGradle() == rootGradle) { logger.afterEvaluate(project.getPath()); } }
/** Adds an eclipse project from the given included build. */ public void addIncludedProject(String includedBuild, String projectPath) { IncludedBuild included = project.getGradle().includedBuild(includedBuild); File projectDir = new File(included.getProjectDir(), projectPath.substring(1).replace(':', '/')); Preconditions.checkArgument(addProjectIfExists(included, projectDir, Specs.satisfyAll())); }
public void apply(final Project project) { //main release task project.getTasks().create("release"); final ReleaseWorkflowExtension ext = project.getExtensions().create("releaseWorkflow", ReleaseWorkflowExtension.class, project); //setup listener, so that the postSteps are only executed if one of the main tasks fail project.getGradle().addListener(new PostStepTaskEnabler(ext)); //TODO very implicit, it needs to go to some tools for release, for example, "releaseTools.git" GitTool gitTool = Git.gitTool(Exec.getProcessRunner(project.getProjectDir())); project.getExtensions().getExtraProperties().set("gitTool", gitTool); }
public static void checkGradleVersion(Project project, String gradleMinVersion, String gradlePluginName) { String projectGradleVersion = project.getGradle().getGradleVersion(); if (new VersionComparator().compare(gradleMinVersion, projectGradleVersion) > 0) { throw new BuildException(String.format( "Detected Gradle version %s, but %s requires Gradle version %s or higher.", projectGradleVersion, gradlePluginName, gradleMinVersion), null); } } }
private ResourceLock getOrCreateProjectLock(Project project) { String gradlePath = ((GradleInternal) project.getGradle()).getIdentityPath().toString(); String projectPath = ((ProjectInternal) project).getIdentityPath().toString(); return workerLeaseService.getProjectLock(gradlePath, projectPath); }
@Override public void afterExecute(Task task, TaskState state) { if (task.getProject().getGradle() == rootGradle) { logger.afterExecute(state.getFailure() != null); } else { logger.afterNestedExecute(state.getFailure() != null); } }
@Override public void apply(Project project) { Task snapshotTask = TaskMaker.task(project, SNAPSHOT_TASK, t -> { t.setDescription("Depends on specific tasks that create local snapshot files."); }); this.isSnapshot = configureTask(snapshotTask, project.getGradle().getStartParameter().getTaskNames()); }
@Override public void apply(Project project) { Task snapshotTask = TaskMaker.task(project, SNAPSHOT_TASK, t -> { t.setDescription("Depends on specific tasks that create local snapshot files."); }); this.isSnapshot = configureTask(snapshotTask, project.getGradle().getStartParameter().getTaskNames()); }