Skip to content

Commit 232f03d

Browse files
committed
Remove support for applying the conventions as a project plugin
Closes gh-75
1 parent fb71d4b commit 232f03d

File tree

3 files changed

+20
-105
lines changed

3 files changed

+20
-105
lines changed

README.md

+2-18
Original file line numberDiff line numberDiff line change
@@ -124,24 +124,8 @@ pluginManagement {
124124
```
125125

126126
In the example above, `gradlePluginPortal()` is declared to allow other plugins to continue to be resolved from the portal.
127-
The second step in applying the plugin depends on the version of Gradle that you are using.
128127

129-
#### Gradle 5.x
130-
131-
The plugin should be applied in `build.gradle` of the root project, alongside the `com.gradle.build-scan` plugin:
132-
133-
```groovy
134-
plugins {
135-
// …
136-
id "com.gradle.build-scan" version "<<version>>"
137-
id "io.spring.ge.conventions" version "<<version>>"
138-
// …
139-
}
140-
```
141-
142-
#### Gradle 6.x and later
143-
144-
The plugin should be applied in `settings.gradle`, alongside the `com.gradle.enterprise` plugin:
128+
Now apply the plugin in `settings.gradle`, alongside the `com.gradle.enterprise` plugin:
145129

146130
```groovy
147131
plugins {
@@ -150,4 +134,4 @@ plugins {
150134
id "io.spring.ge.conventions" version "<<version>>"
151135
// …
152136
}
153-
```
137+
```

src/main/java/io/spring/ge/conventions/gradle/GradleEnterpriseConventionsPlugin.java

+2-20
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import com.gradle.scan.plugin.BuildScanExtension;
2626
import org.gradle.StartParameter;
2727
import org.gradle.api.Plugin;
28-
import org.gradle.api.Project;
2928
import org.gradle.api.initialization.Settings;
3029
import org.gradle.api.internal.ProcessOperations;
3130

@@ -35,7 +34,7 @@
3534
*
3635
* @author Andy Wilkinson
3736
*/
38-
public class GradleEnterpriseConventionsPlugin implements Plugin<Object> {
37+
public class GradleEnterpriseConventionsPlugin implements Plugin<Settings> {
3938

4039
private final ProcessOperations processOperations;
4140

@@ -45,16 +44,7 @@ public GradleEnterpriseConventionsPlugin(ProcessOperations processOperations) {
4544
}
4645

4746
@Override
48-
public void apply(Object target) {
49-
if (target instanceof Settings) {
50-
apply((Settings) target);
51-
}
52-
else if (target instanceof Project) {
53-
apply((Project) target);
54-
}
55-
}
56-
57-
private void apply(Settings settings) {
47+
public void apply(Settings settings) {
5848
settings.getPlugins().withType(GradleEnterprisePlugin.class, (plugin) -> {
5949
GradleEnterpriseExtension extension = settings.getExtensions().getByType(GradleEnterpriseExtension.class);
6050
configureBuildScanConventions(extension.getBuildScan(), settings.getStartParameter(),
@@ -66,14 +56,6 @@ private void apply(Settings settings) {
6656
}
6757
}
6858

69-
private void apply(Project project) {
70-
project.getPlugins()
71-
.withId("com.gradle.build-scan",
72-
(plugin) -> configureBuildScanConventions(
73-
project.getExtensions().getByType(BuildScanExtension.class),
74-
project.getGradle().getStartParameter(), project.getRootDir()));
75-
}
76-
7759
private void configureBuildScanConventions(BuildScanExtension buildScan, StartParameter startParameter,
7860
File rootDir) {
7961
if (startParameter.isNoBuildScan() || containsPropertiesTask(startParameter)) {

src/test/java/io/spring/ge/conventions/gradle/GradleEnterpriseConventionsPluginIntegrationTests.java

+16-67
Original file line numberDiff line numberDiff line change
@@ -43,113 +43,62 @@
4343
class GradleEnterpriseConventionsPluginIntegrationTests {
4444

4545
@Test
46-
void givenGradle6WhenThePluginIsAppliedThenBuildScanConventionsAreApplied(@TempDir File projectDir) {
47-
prepareGradle6Project(projectDir);
46+
void whenThePluginIsAppliedThenBuildScanConventionsAreApplied(@TempDir File projectDir) {
47+
prepareProject(projectDir);
4848
BuildResult result = build(projectDir, "6.0.1", "verifyBuildScanConfig");
4949
assertThat(result.getOutput()).contains("Build scan server: https://ge.spring.io");
5050
assertThat(result.getOutput()).contains("Capture task input files: true");
5151
}
5252

5353
@Test
54-
void givenGradle6WhenThePluginIsAppliedThenBuildCacheConventionsAreApplied(@TempDir File projectDir) {
55-
prepareGradle6Project(projectDir);
54+
void whenThePluginIsAppliedThenBuildCacheConventionsAreApplied(@TempDir File projectDir) {
55+
prepareProject(projectDir);
5656
BuildResult result = build(projectDir, "6.0.1", "verifyBuildCacheConfig");
5757
assertThat(result.getOutput()).contains("Build cache remote: https://ge.spring.io/cache/");
5858
}
5959

6060
@Test
61-
void givenGradle6WhenThePluginIsAppliedAndBuildScansAreDisabledThenBuildScanConventionsAreNotApplied(
62-
@TempDir File projectDir) {
63-
prepareGradle6Project(projectDir);
61+
void whenThePluginIsAppliedAndBuildScansAreDisabledThenBuildScanConventionsAreNotApplied(@TempDir File projectDir) {
62+
prepareProject(projectDir);
6463
BuildResult result = build(projectDir, "6.0.1", "verifyBuildScanConfig", "--no-scan");
6564
assertThat(result.getOutput()).contains("Build scan server: null");
6665
assertThat(result.getOutput()).contains("Capture task input files: false");
6766
}
6867

6968
@Test
70-
void givenGradle6WhenThePluginIsAppliedAndPropertiesTaskIsExecutedThenBuildScanConventionsAreNotApplied(
69+
void whenThePluginIsAppliedAndPropertiesTaskIsExecutedThenBuildScanConventionsAreNotApplied(
7170
@TempDir File projectDir) {
72-
prepareGradle6Project(projectDir);
71+
prepareProject(projectDir);
7372
BuildResult result = build(projectDir, "6.0.1", "properties", "verifyBuildScanConfig", "--no-scan");
7473
assertThat(result.getOutput()).contains("Build scan server: null");
7574
assertThat(result.getOutput()).contains("Capture task input files: false");
7675
}
7776

7877
@Test
79-
void givenGradle6MulitProjectBuildWhenThePluginIsAppliedAndPropertiesTaskIsExecutedThenBuildScanConventionsAreNotApplied(
78+
void givenMultiProjectBuildWhenThePluginIsAppliedAndPropertiesTaskIsExecutedThenBuildScanConventionsAreNotApplied(
8079
@TempDir File projectDir) {
81-
prepareGradle6MultiProject(projectDir);
80+
prepareMultiModuleProject(projectDir);
8281
BuildResult result = build(projectDir, "6.0.1", "sub:properties", "sub:verifyBuildScanConfig", "--no-scan");
8382
assertThat(result.getOutput()).contains("Build scan server: null");
8483
assertThat(result.getOutput()).contains("Capture task input files: false");
8584
}
8685

8786
@Test
88-
void givenGradle6WhenThePluginIsAppliedAndScanIsSpecifiedThenServerIsNotCustomized(@TempDir File projectDir) {
89-
prepareGradle6Project(projectDir);
87+
void whenThePluginIsAppliedAndScanIsSpecifiedThenServerIsNotCustomized(@TempDir File projectDir) {
88+
prepareProject(projectDir);
9089
BuildResult result = build(projectDir, "6.0.1", "verifyBuildScanConfig", "--scan");
9190
assertThat(result.getOutput()).contains("Build scan server: null");
9291
assertThat(result.getOutput()).contains("Capture task input files: true");
9392
}
9493

9594
@Test
96-
void givenGradle6WhenThePluginIsAppliedAndBuildCacheIsDisabledThenBuildCacheConventionsAreNotApplied(
97-
@TempDir File projectDir) {
98-
prepareGradle6Project(projectDir);
95+
void whenThePluginIsAppliedAndBuildCacheIsDisabledThenBuildCacheConventionsAreNotApplied(@TempDir File projectDir) {
96+
prepareProject(projectDir);
9997
BuildResult result = build(projectDir, "6.0.1", "verifyBuildCacheConfig", "--no-build-cache");
10098
assertThat(result.getOutput()).contains("Build cache remote: null");
10199
}
102100

103-
@Test
104-
void givenGradle5WhenThePluginIsAppliedThenBuildScanConventionsAreApplied(@TempDir File projectDir) {
105-
prepareGradle5Project(projectDir);
106-
BuildResult result = build(projectDir, "5.6.4", "verifyBuildScanConfig");
107-
assertThat(result.getOutput()).contains("Build scan server: https://ge.spring.io");
108-
assertThat(result.getOutput()).contains("Capture task input files: true");
109-
}
110-
111-
@Test
112-
void givenGradle5WhenThePluginIsAppliedAndBuildScansAreDisabledThenBuildScanConventionsAreNotApplied(
113-
@TempDir File projectDir) {
114-
prepareGradle5Project(projectDir);
115-
BuildResult result = build(projectDir, "5.6.4", "verifyBuildScanConfig", "--no-scan");
116-
assertThat(result.getOutput()).contains("Build scan server: null");
117-
assertThat(result.getOutput()).contains("Capture task input files: false");
118-
}
119-
120-
@Test
121-
void givenGradle5WhenThePluginIsAppliedAndPropertiesTaskIsExecutedThenBuildScanConventionsAreNotApplied(
122-
@TempDir File projectDir) {
123-
prepareGradle5Project(projectDir);
124-
BuildResult result = build(projectDir, "5.6.4", "properties", "verifyBuildScanConfig", "--no-scan");
125-
assertThat(result.getOutput()).contains("Build scan server: null");
126-
assertThat(result.getOutput()).contains("Capture task input files: false");
127-
}
128-
129-
@Test
130-
void givenGradle5WhenThePluginIsAppliedAndScanIsSpecifiedThenServerIsNotCustomized(@TempDir File projectDir) {
131-
prepareGradle5Project(projectDir);
132-
BuildResult result = build(projectDir, "5.6.4", "verifyBuildScanConfig", "--scan");
133-
assertThat(result.getOutput()).contains("Build scan server: null");
134-
assertThat(result.getOutput()).contains("Capture task input files: true");
135-
}
136-
137-
private void prepareGradle5Project(File projectDir) {
138-
write(new File(projectDir, "build.gradle"), (writer) -> {
139-
writer.println("plugins {");
140-
writer.println(" id 'com.gradle.build-scan'");
141-
writer.println(" id 'io.spring.ge.conventions' version '" + version() + "'");
142-
writer.println("}");
143-
writer.println("task verifyBuildScanConfig {");
144-
writer.println(" doFirst {");
145-
writer.println(" println \"Build scan server: ${buildScan.server}\"");
146-
writer.println(" println \"Capture task input files: ${buildScan.captureTaskInputFiles}\"");
147-
writer.println(" }");
148-
writer.println("}");
149-
});
150-
}
151-
152-
private void prepareGradle6Project(File projectDir) {
101+
private void prepareProject(File projectDir) {
153102
write(new File(projectDir, "gradle.properties"), (writer) -> writer.println("org.gradle.caching=true"));
154103
write(new File(projectDir, "settings.gradle"), (writer) -> {
155104
writer.println("plugins {");
@@ -174,7 +123,7 @@ private void prepareGradle6Project(File projectDir) {
174123
});
175124
}
176125

177-
private void prepareGradle6MultiProject(File projectDir) {
126+
private void prepareMultiModuleProject(File projectDir) {
178127
write(new File(projectDir, "gradle.properties"), (writer) -> writer.println("org.gradle.caching=true"));
179128
write(new File(projectDir, "settings.gradle"), (writer) -> {
180129
writer.println("plugins {");

0 commit comments

Comments
 (0)