@Override public void apply(Project project) { project.getPlugins().apply(NodePlugin.class); NodeExtension node = project.getExtensions().getByType(NodeExtension.class); node.setDownload(true); node.setVersion("8.11.4"); node.setNodeModulesDir(project.file(new File(project.getBuildDir(), "/modules"))); NpmTask downloadAntoraCli = project.getTasks() .create("downloadAntoraCli", NpmTask.class); downloadAntoraCli.setArgs(Arrays.asList("install", "@antora/cli")); NpmTask downloadAntoraSiteGenerator = project.getTasks() .create("downloadAntoraSiteGenerator", NpmTask.class); downloadAntoraSiteGenerator.setArgs(Arrays.asList("install", "@antora/site-generator-default")); Task downloadAntora = project.getTasks().create("downloadAntora"); downloadAntora.dependsOn(downloadAntoraCli, downloadAntoraSiteGenerator); Exec antora = project.getTasks().create("antora", Exec.class); antora.setGroup("Docs"); antora.setDescription("Installs and runs antora site.yml"); antora.dependsOn(downloadAntora); antora.setCommandLine("build/modules/node_modules/@antora/cli/bin/antora", "site.yml"); } }
@Override public void apply(Project project) { if (!project.getPlugins().hasPlugin(AppPlugin.class)) { throw new RuntimeException("should be declared after 'com.android.application'"); } AppExtension ext = project.getExtensions().getByType(AppExtension.class); ext.getApplicationVariants().all(v -> { String taskName = "open"+capitalize(v.getName()); DefaultTask parentTask = v.getInstall(); File adb = ext.getAdbExe(); if (v.isSigningReady()) { String packageId = v.getApplicationId(); HashMap variantAction = new HashMap(); variantAction.put("dependsOn", parentTask); variantAction.put("description", "Installs and opens " + v.getDescription()); variantAction.put("type", Exec.class); variantAction.put("group", "Open"); Exec t = (Exec) project.task(variantAction, taskName); t.setCommandLine(adb, "shell", "monkey", "-p", packageId, "-c", "android.intent.category.LAUNCHER", "1"); } }); }