mirror of
https://github.com/ethauvin/rife2-hello.git
synced 2025-04-25 23:37:12 -07:00
Minor cleanups
This commit is contained in:
parent
d3dedfe189
commit
c8f47a935e
1 changed files with 37 additions and 25 deletions
|
@ -15,8 +15,7 @@
|
||||||
*/
|
*/
|
||||||
package com.uwyn.rife2.gradle;
|
package com.uwyn.rife2.gradle;
|
||||||
|
|
||||||
import org.gradle.api.Plugin;
|
import org.gradle.api.*;
|
||||||
import org.gradle.api.Project;
|
|
||||||
import org.gradle.api.artifacts.Configuration;
|
import org.gradle.api.artifacts.Configuration;
|
||||||
import org.gradle.api.artifacts.ConfigurationContainer;
|
import org.gradle.api.artifacts.ConfigurationContainer;
|
||||||
import org.gradle.api.artifacts.dsl.DependencyHandler;
|
import org.gradle.api.artifacts.dsl.DependencyHandler;
|
||||||
|
@ -58,17 +57,21 @@ public class Rife2Plugin implements Plugin<Project> {
|
||||||
var rife2CompilerClasspath = createRife2CompilerClasspathConfiguration(configurations, rife2Configuration);
|
var rife2CompilerClasspath = createRife2CompilerClasspathConfiguration(configurations, rife2Configuration);
|
||||||
var rife2AgentClasspath = createRife2AgentConfiguration(configurations, dependencyHandler, rife2Extension);
|
var rife2AgentClasspath = createRife2AgentConfiguration(configurations, dependencyHandler, rife2Extension);
|
||||||
configurations.getByName(JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME).extendsFrom(rife2Configuration);
|
configurations.getByName(JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME).extendsFrom(rife2Configuration);
|
||||||
var precompileTemplates = registerPrecompileTemplateTask(project, rife2CompilerClasspath);
|
var precompileHtmlTemplates = registerPrecompileHtmlTemplateTask(project, rife2CompilerClasspath);
|
||||||
createRife2DevelopmentOnlyConfiguration(project, configurations, dependencyHandler, precompileTemplates);
|
createRife2DevelopmentOnlyConfiguration(project, configurations, dependencyHandler, precompileHtmlTemplates);
|
||||||
exposePrecompiledTemplatesToTestTask(project, configurations, dependencyHandler, precompileTemplates);
|
exposePrecompiledTemplatesToTestTask(project, configurations, dependencyHandler, precompileHtmlTemplates);
|
||||||
configureAgent(project, plugins, rife2Extension, rife2AgentClasspath);
|
configureAgent(project, plugins, rife2Extension, rife2AgentClasspath);
|
||||||
registerRunTask(project, rife2Extension, rife2AgentClasspath);
|
registerRunTask(project, rife2Extension, rife2AgentClasspath);
|
||||||
TaskProvider<Jar> uberJarTask = registerUberJarTask(project, plugins, javaPluginExtension, rife2Extension, tasks, precompileTemplates);
|
TaskProvider<Jar> uberJarTask = registerUberJarTask(project, plugins, javaPluginExtension, rife2Extension, tasks, precompileHtmlTemplates);
|
||||||
bundlePrecompiledTemplatesIntoJarFile(tasks, precompileTemplates);
|
bundlePrecompiledTemplatesIntoJarFile(tasks, precompileHtmlTemplates);
|
||||||
configureMavenPublishing(project, plugins, configurations, uberJarTask);
|
configureMavenPublishing(project, plugins, configurations, uberJarTask);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void configureMavenPublishing(Project project, PluginContainer plugins, ConfigurationContainer configurations, TaskProvider<Jar> uberJarTask) {
|
@SuppressWarnings("unchecked")
|
||||||
|
private static void configureMavenPublishing(Project project,
|
||||||
|
PluginContainer plugins,
|
||||||
|
ConfigurationContainer configurations,
|
||||||
|
TaskProvider<Jar> uberJarTask) {
|
||||||
plugins.withId("maven-publish", unused -> {
|
plugins.withId("maven-publish", unused -> {
|
||||||
Configuration rife2UberJarElements = configurations.create("rife2UberJarElements", conf -> {
|
Configuration rife2UberJarElements = configurations.create("rife2UberJarElements", conf -> {
|
||||||
conf.setDescription("Exposes the uber jar archive of the RIFE2 web application.");
|
conf.setDescription("Exposes the uber jar archive of the RIFE2 web application.");
|
||||||
|
@ -95,18 +98,22 @@ public class Rife2Plugin implements Plugin<Project> {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void exposePrecompiledTemplatesToTestTask(Project project, ConfigurationContainer configurations, DependencyHandler dependencyHandler, TaskProvider<PrecompileTemplates> precompileTemplates) {
|
private static void exposePrecompiledTemplatesToTestTask(Project project,
|
||||||
|
ConfigurationContainer configurations,
|
||||||
|
DependencyHandler dependencyHandler,
|
||||||
|
TaskProvider<PrecompileTemplates> precompileTemplates) {
|
||||||
configurations.getByName(JavaPlugin.TEST_RUNTIME_ONLY_CONFIGURATION_NAME)
|
configurations.getByName(JavaPlugin.TEST_RUNTIME_ONLY_CONFIGURATION_NAME)
|
||||||
.getDependencies()
|
.getDependencies()
|
||||||
.add(dependencyHandler.create(project.files(precompileTemplates)));
|
.add(dependencyHandler.create(project.files(precompileTemplates)));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void bundlePrecompiledTemplatesIntoJarFile(TaskContainer tasks, TaskProvider<PrecompileTemplates> precompileTemplates) {
|
private static void bundlePrecompiledTemplatesIntoJarFile(TaskContainer tasks,
|
||||||
|
TaskProvider<PrecompileTemplates> precompileTemplates) {
|
||||||
tasks.named("jar", Jar.class, jar -> jar.from(precompileTemplates));
|
tasks.named("jar", Jar.class, jar -> jar.from(precompileTemplates));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createRife2DevelopmentOnlyConfiguration(Project project,
|
private void createRife2DevelopmentOnlyConfiguration(Project project,
|
||||||
ConfigurationContainer configurations,
|
ConfigurationContainer configurations,
|
||||||
DependencyHandler dependencies,
|
DependencyHandler dependencies,
|
||||||
TaskProvider<PrecompileTemplates> precompileTemplatesTask) {
|
TaskProvider<PrecompileTemplates> precompileTemplatesTask) {
|
||||||
Configuration rife2DevelopmentOnly = configurations.create("rife2DevelopmentOnly", conf -> {
|
Configuration rife2DevelopmentOnly = configurations.create("rife2DevelopmentOnly", conf -> {
|
||||||
|
@ -135,16 +142,19 @@ public class Rife2Plugin implements Plugin<Project> {
|
||||||
jar.from(precompileTemplatesTask);
|
jar.from(precompileTemplatesTask);
|
||||||
jar.into("webapp", spec -> spec.from(WEBAPP_SRCDIR));
|
jar.into("webapp", spec -> spec.from(WEBAPP_SRCDIR));
|
||||||
jar.from(runtimeClasspath.getElements().map(e -> e.stream()
|
jar.from(runtimeClasspath.getElements().map(e -> e.stream()
|
||||||
.filter(f -> f.getAsFile().getName().toLowerCase(Locale.ENGLISH).endsWith(".jar"))
|
.filter(f -> f.getAsFile().getName().toLowerCase(Locale.ENGLISH).endsWith(".jar"))
|
||||||
.map(project::zipTree)
|
.map(project::zipTree)
|
||||||
.toList()));
|
.toList()));
|
||||||
plugins.withId("application", unused -> jar.manifest(manifest ->
|
plugins.withId("application", unused -> jar.manifest(manifest ->
|
||||||
manifest.getAttributes().put("Main-Class", rife2Extension.getUberMainClass().get()))
|
manifest.getAttributes().put("Main-Class", rife2Extension.getUberMainClass().get()))
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void configureAgent(Project project, PluginContainer plugins, Rife2Extension rife2Extension, Configuration rife2AgentClasspath) {
|
private static void configureAgent(Project project,
|
||||||
|
PluginContainer plugins,
|
||||||
|
Rife2Extension rife2Extension,
|
||||||
|
Configuration rife2AgentClasspath) {
|
||||||
CommandLineArgumentProvider agentProvider = () -> {
|
CommandLineArgumentProvider agentProvider = () -> {
|
||||||
if (Boolean.TRUE.equals(rife2Extension.getUseAgent().get())) {
|
if (Boolean.TRUE.equals(rife2Extension.getUseAgent().get())) {
|
||||||
return Collections.singleton("-javaagent:" + rife2AgentClasspath.getAsPath());
|
return Collections.singleton("-javaagent:" + rife2AgentClasspath.getAsPath());
|
||||||
|
@ -162,7 +172,8 @@ public class Rife2Plugin implements Plugin<Project> {
|
||||||
return rife2;
|
return rife2;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Configuration createRife2CompilerClasspathConfiguration(ConfigurationContainer configurations, Configuration rife2Configuration) {
|
private static Configuration createRife2CompilerClasspathConfiguration(ConfigurationContainer configurations,
|
||||||
|
Configuration rife2Configuration) {
|
||||||
return configurations.create("rife2CompilerClasspath", conf -> {
|
return configurations.create("rife2CompilerClasspath", conf -> {
|
||||||
conf.setDescription("The RIFE2 compiler classpath");
|
conf.setDescription("The RIFE2 compiler classpath");
|
||||||
conf.setCanBeConsumed(false);
|
conf.setCanBeConsumed(false);
|
||||||
|
@ -197,11 +208,11 @@ public class Rife2Plugin implements Plugin<Project> {
|
||||||
return config;
|
return config;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static TaskProvider<PrecompileTemplates> registerPrecompileTemplateTask(Project project,
|
private static TaskProvider<PrecompileTemplates> registerPrecompileHtmlTemplateTask(Project project,
|
||||||
Configuration rife2CompilerClasspath) {
|
Configuration rife2CompilerClasspath) {
|
||||||
return project.getTasks().register("precompileTemplates", PrecompileTemplates.class, task -> {
|
return project.getTasks().register("precompileHtmlTemplates", PrecompileTemplates.class, task -> {
|
||||||
task.setGroup(RIFE2_GROUP);
|
task.setGroup(RIFE2_GROUP);
|
||||||
task.setDescription("Pre-compiles the templates.");
|
task.setDescription("Pre-compiles the HTML templates.");
|
||||||
task.getVerbose().convention(true);
|
task.getVerbose().convention(true);
|
||||||
task.getClasspath().from(rife2CompilerClasspath);
|
task.getClasspath().from(rife2CompilerClasspath);
|
||||||
task.getType().convention("html");
|
task.getType().convention("html");
|
||||||
|
@ -210,14 +221,15 @@ public class Rife2Plugin implements Plugin<Project> {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void registerRunTask(Project project, Rife2Extension rife2Extension,
|
private static void registerRunTask(Project project,
|
||||||
Configuration rife2CompilerClasspath) {
|
Rife2Extension rife2Extension,
|
||||||
|
Configuration rife2CompilerClasspath) {
|
||||||
project.getTasks().register("run", RunTask.class, task -> {
|
project.getTasks().register("run", RunTask.class, task -> {
|
||||||
task.setGroup(RIFE2_GROUP);
|
task.setGroup(RIFE2_GROUP);
|
||||||
task.setDescription("Runs this project as a web application.");
|
task.setDescription("Runs this project as a web application.");
|
||||||
task.getAgentClassPath().set(rife2CompilerClasspath.getAsPath());
|
task.getAgentClassPath().set(rife2CompilerClasspath.getAsPath());
|
||||||
task.getClasspath().from(project.getExtensions().getByType(SourceSetContainer.class)
|
task.getClasspath().from(project.getExtensions().getByType(SourceSetContainer.class)
|
||||||
.getByName(SourceSet.MAIN_SOURCE_SET_NAME).getRuntimeClasspath());
|
.getByName(SourceSet.MAIN_SOURCE_SET_NAME).getRuntimeClasspath());
|
||||||
task.getMainClass().set(rife2Extension.getMainClass());
|
task.getMainClass().set(rife2Extension.getMainClass());
|
||||||
task.getTemplatesDirectory().set(project.getLayout().getProjectDirectory().dir(DEFAULT_TEMPLATES_DIR));
|
task.getTemplatesDirectory().set(project.getLayout().getProjectDirectory().dir(DEFAULT_TEMPLATES_DIR));
|
||||||
});
|
});
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue