|
|
|
@ -17,7 +17,8 @@
@@ -17,7 +17,8 @@
|
|
|
|
|
package org.springframework.build; |
|
|
|
|
|
|
|
|
|
import io.spring.javaformat.gradle.SpringJavaFormatPlugin; |
|
|
|
|
import io.spring.javaformat.gradle.tasks.Format; |
|
|
|
|
import io.spring.nohttp.gradle.NoHttpExtension; |
|
|
|
|
import io.spring.nohttp.gradle.NoHttpPlugin; |
|
|
|
|
import org.gradle.api.Plugin; |
|
|
|
|
import org.gradle.api.Project; |
|
|
|
|
import org.gradle.api.artifacts.DependencySet; |
|
|
|
@ -26,6 +27,9 @@ import org.gradle.api.plugins.quality.Checkstyle;
@@ -26,6 +27,9 @@ import org.gradle.api.plugins.quality.Checkstyle;
|
|
|
|
|
import org.gradle.api.plugins.quality.CheckstyleExtension; |
|
|
|
|
import org.gradle.api.plugins.quality.CheckstylePlugin; |
|
|
|
|
|
|
|
|
|
import java.nio.file.Path; |
|
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* {@link Plugin} that applies conventions for checkstyle. |
|
|
|
|
* @author Brian Clozel |
|
|
|
@ -38,6 +42,9 @@ public class CheckstyleConventions {
@@ -38,6 +42,9 @@ public class CheckstyleConventions {
|
|
|
|
|
*/ |
|
|
|
|
public void apply(Project project) { |
|
|
|
|
project.getPlugins().withType(JavaBasePlugin.class, (java) -> { |
|
|
|
|
if (project.getRootProject() == project) { |
|
|
|
|
configureNoHttpPlugin(project); |
|
|
|
|
} |
|
|
|
|
project.getPlugins().apply(CheckstylePlugin.class); |
|
|
|
|
project.getTasks().withType(Checkstyle.class).forEach(checkstyle -> checkstyle.getMaxHeapSize().set("1g")); |
|
|
|
|
CheckstyleExtension checkstyle = project.getExtensions().getByType(CheckstyleExtension.class); |
|
|
|
@ -50,4 +57,20 @@ public class CheckstyleConventions {
@@ -50,4 +57,20 @@ public class CheckstyleConventions {
|
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private static void configureNoHttpPlugin(Project project) { |
|
|
|
|
project.getPlugins().apply(NoHttpPlugin.class); |
|
|
|
|
NoHttpExtension noHttp = project.getExtensions().getByType(NoHttpExtension.class); |
|
|
|
|
noHttp.setAllowlistFile(project.file("src/nohttp/allowlist.lines")); |
|
|
|
|
noHttp.getSource().exclude("**/test-output/**", "**/.settings/**", |
|
|
|
|
"**/.classpath", "**/.project"); |
|
|
|
|
List<String> buildFolders = List.of("bin", "build", "out"); |
|
|
|
|
project.allprojects(subproject -> { |
|
|
|
|
Path rootPath = project.getRootDir().toPath(); |
|
|
|
|
Path projectPath = rootPath.relativize(subproject.getProjectDir().toPath()); |
|
|
|
|
for (String buildFolder : buildFolders) { |
|
|
|
|
noHttp.getSource().exclude(projectPath.resolve(buildFolder).resolve("**").toString()); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|