浏览代码

Fix Gradle Plugin

Fix IncludeCheckRemotePlugin to add the default tasks even without defining the extension properties

Issue gh-9846
Marcus Da Coregio 4 年之前
父节点
当前提交
87687bf03f

+ 7 - 7
buildSrc/src/main/groovy/io/spring/gradle/convention/IncludeCheckRemotePlugin.groovy

@@ -33,8 +33,8 @@ class IncludeCheckRemotePlugin implements Plugin<Project> {
 	void apply(Project project) {
 		IncludeCheckRemoteExtension extension = project.extensions.create('includeCheckRemote', IncludeCheckRemoteExtension)
 		TaskProvider<IncludeRepoTask> includeRepoTask = project.tasks.register('includeRepo', IncludeRepoTask) { IncludeRepoTask it ->
-			it.repository = extension.repository.get()
-			it.ref = extension.ref.get()
+			it.repository = extension.repository
+			it.ref = extension.ref
 		}
 		project.tasks.register('checkRemote', GradleBuild) {
 			it.dependsOn 'includeRepo'
@@ -44,22 +44,22 @@ class IncludeCheckRemotePlugin implements Plugin<Project> {
 	}
 
 	abstract static class IncludeCheckRemoteExtension {
+
 		/**
 		 * Git repository to clone
 		 */
-		abstract Property<String> getRepository();
+		String repository;
+
 		/**
 		 * Git ref to checkout
 		 */
-		abstract Property<String> getRef();
+		String ref
+
 		/**
 		 * Task to run in the repository
 		 */
 		List<String> tasks = ['check']
 
-		void setTask(List<String> tasks) {
-			this.tasks = tasks
-		}
 	}
 
 }

+ 11 - 0
buildSrc/src/test/java/io/spring/gradle/convention/IncludeCheckRemotePluginTest.java

@@ -97,4 +97,15 @@ class IncludeCheckRemotePluginTest {
 		GradleBuild checkRemote = (GradleBuild) this.rootProject.getTasks().named("checkRemote").get();
 		assertThat(checkRemote.getDir()).isEqualTo(includeRepo.getOutputDirectory());
 	}
+
+	@Test
+	void applyWhenNoExtensionPropertiesThenRegisterTasks() {
+		this.rootProject = ProjectBuilder.builder().build();
+		this.rootProject.getPluginManager().apply(IncludeCheckRemotePlugin.class);
+		IncludeRepoTask includeRepo = (IncludeRepoTask) this.rootProject.getTasks().named("includeRepo").get();
+		GradleBuild checkRemote = (GradleBuild) this.rootProject.getTasks().named("checkRemote").get();
+		assertThat(includeRepo).isNotNull();
+		assertThat(checkRemote).isNotNull();
+	}
+
 }