Skip to content

Commit 0fb344d

Browse files
committed
Property to disable tasks not needed for plugin's main functionality
This property is a "quick" solution to make this feature available and gather feedback from users. Eventually, tasks should be: - moved to a separate plugin - or removed completely if not considered useful anymore This would be a breaking change and thus should be done only in the next major release.
1 parent 3208f52 commit 0fb344d

File tree

2 files changed

+31
-24
lines changed

2 files changed

+31
-24
lines changed

src/main/java/org/gradlex/javamodule/dependencies/JavaModuleDependenciesPlugin.java

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@
6868
public abstract class JavaModuleDependenciesPlugin implements Plugin<ExtensionAware> {
6969

7070
private static final String EXTRA_JAVA_MODULE_INFO_PLUGIN_ID = "org.gradlex.extra-java-module-info";
71+
private static final String REGISTER_HELP_TASKS_PROPERTY = "org.gradlex.java-module-dependencies.register-help-tasks";
7172

7273
@Override
7374
public void apply(ExtensionAware projectOrSettings) {
@@ -92,6 +93,10 @@ private void applyProject(Project project) {
9293
}
9394

9495
private void setupForJavaProject(Project project, JavaModuleDependenciesExtension javaModuleDependencies) {
96+
boolean registerHelpTasks = Boolean.parseBoolean(project.getProviders()
97+
.gradleProperty(REGISTER_HELP_TASKS_PROPERTY)
98+
.getOrElse("true"));
99+
95100
SourceSetContainer sourceSets = project.getExtensions().getByType(SourceSetContainer.class);
96101
sourceSets.all(sourceSet -> {
97102
process(REQUIRES, sourceSet.getImplementationConfigurationName(), sourceSet, project, javaModuleDependencies);
@@ -103,21 +108,22 @@ private void setupForJavaProject(Project project, JavaModuleDependenciesExtensio
103108
javaModuleDependencies.doAddRequiresRuntimeSupport(sourceSet, sourceSet);
104109
});
105110

106-
TaskProvider<Task> checkAllModuleInfo = project.getTasks().register("checkAllModuleInfo", t -> {
111+
setupDirectivesDSL(project, javaModuleDependencies);
112+
113+
TaskProvider<Task> checkAllModuleInfo = registerHelpTasks ? project.getTasks().register("checkAllModuleInfo", t -> {
107114
t.setGroup(VERIFICATION_GROUP);
108115
t.setDescription("Check scope and order of directives in 'module-info.java' files");
109-
});
116+
}) : null;
110117

111-
setupDirectivesDSL(project, javaModuleDependencies);
112-
113-
setupOrderingCheckTasks(project, checkAllModuleInfo, javaModuleDependencies);
114-
setupModuleDependenciesTask(project);
115-
setupReportTasks(project, javaModuleDependencies);
116-
setupMigrationTasks(project, javaModuleDependencies);
118+
if (registerHelpTasks) {
119+
setupOrderingCheckTasks(project, checkAllModuleInfo, javaModuleDependencies);
120+
setupModuleDependenciesTask(project);
121+
setupReportTasks(project, javaModuleDependencies);
122+
setupMigrationTasks(project, javaModuleDependencies);
123+
}
117124

118-
project.getPlugins().withId("com.autonomousapps.dependency-analysis", analysisPlugin -> {
119-
DependencyAnalysisBridge.registerDependencyAnalysisPostProcessingTask(project, checkAllModuleInfo);
120-
});
125+
project.getPlugins().withId("com.autonomousapps.dependency-analysis", analysisPlugin ->
126+
DependencyAnalysisBridge.registerDependencyAnalysisPostProcessingTask(project, checkAllModuleInfo));
121127
}
122128

123129
private void setupExtraJavaModulePluginBridge(Project project, JavaModuleDependenciesExtension javaModuleDependencies) {
@@ -143,17 +149,15 @@ private void setupDirectivesDSL(Project project, JavaModuleDependenciesExtension
143149
private void setupModuleDependenciesTask(Project project) {
144150
SourceSetContainer sourceSets = project.getExtensions().getByType(SourceSetContainer.class);
145151
TaskProvider<ModuleDependencyReport> moduleDependencies = project.getTasks().register("moduleDependencies", ModuleDependencyReport.class, t -> t.setGroup(HELP_GROUP));
146-
sourceSets.all(sourceSet -> {
147-
moduleDependencies.configure(t -> {
148-
HashSet<Configuration> joined = new HashSet<>();
149-
if (t.getConfigurations() != null) {
150-
joined.addAll(t.getConfigurations());
151-
}
152-
joined.add(project.getConfigurations().getByName(sourceSet.getCompileClasspathConfigurationName()));
153-
joined.add(project.getConfigurations().getByName(sourceSet.getRuntimeClasspathConfigurationName()));
154-
t.setConfigurations(joined);
155-
});
156-
});
152+
sourceSets.all(sourceSet -> moduleDependencies.configure(t -> {
153+
HashSet<Configuration> joined = new HashSet<>();
154+
if (t.getConfigurations() != null) {
155+
joined.addAll(t.getConfigurations());
156+
}
157+
joined.add(project.getConfigurations().getByName(sourceSet.getCompileClasspathConfigurationName()));
158+
joined.add(project.getConfigurations().getByName(sourceSet.getRuntimeClasspathConfigurationName()));
159+
t.setConfigurations(joined);
160+
}));
157161
}
158162

159163
private void setupReportTasks(Project project, JavaModuleDependenciesExtension javaModuleDependencies) {

src/main/java/org/gradlex/javamodule/dependencies/internal/bridges/DependencyAnalysisBridge.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,12 @@
2626
import org.gradlex.javamodule.dependencies.tasks.ModuleDirectivesOrderingCheck;
2727
import org.gradlex.javamodule.dependencies.tasks.ModuleDirectivesScopeCheck;
2828

29+
import javax.annotation.Nullable;
2930
import java.io.File;
3031

3132
public class DependencyAnalysisBridge {
3233

33-
public static void registerDependencyAnalysisPostProcessingTask(Project project, TaskProvider<Task> checkAllModuleInfo) {
34+
public static void registerDependencyAnalysisPostProcessingTask(Project project, @Nullable TaskProvider<Task> checkAllModuleInfo) {
3435
TaskContainer tasks = project.getTasks();
3536
SourceSetContainer sourceSets = project.getExtensions().getByType(SourceSetContainer.class);
3637

@@ -54,7 +55,9 @@ public static void registerDependencyAnalysisPostProcessingTask(Project project,
5455
project.getExtensions().getByType(AbstractExtension.class)
5556
.registerPostProcessingTask(checkModuleDirectivesScope);
5657

57-
checkAllModuleInfo.configure(t -> t.dependsOn(checkModuleDirectivesScope));
58+
if (checkAllModuleInfo != null) {
59+
checkAllModuleInfo.configure(t -> t.dependsOn(checkModuleDirectivesScope));
60+
}
5861
tasks.withType(ModuleDirectivesOrderingCheck.class).configureEach(t -> t.mustRunAfter(checkModuleDirectivesScope));
5962
}
6063
}

0 commit comments

Comments
 (0)