Add Gradle Lock Plugin
This commit is contained in:
parent
e16f15cce3
commit
a401392bac
@ -11,6 +11,7 @@ buildscript {
|
|||||||
}
|
}
|
||||||
|
|
||||||
apply plugin: 'io.spring.nohttp'
|
apply plugin: 'io.spring.nohttp'
|
||||||
|
apply plugin: 'locks'
|
||||||
apply plugin: 'io.spring.convention.root'
|
apply plugin: 'io.spring.convention.root'
|
||||||
|
|
||||||
group = 'org.springframework.security.experimental'
|
group = 'org.springframework.security.experimental'
|
||||||
|
14
buildSrc/build.gradle
Normal file
14
buildSrc/build.gradle
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
apply plugin: "java-gradle-plugin"
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
mavenCentral()
|
||||||
|
}
|
||||||
|
|
||||||
|
gradlePlugin {
|
||||||
|
plugins {
|
||||||
|
locks {
|
||||||
|
id = "locks"
|
||||||
|
implementationClass = "lock.GlobalLockPlugin"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
16
buildSrc/src/main/java/lock/GlobalLockPlugin.java
Normal file
16
buildSrc/src/main/java/lock/GlobalLockPlugin.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package lock;
|
||||||
|
|
||||||
|
import org.gradle.api.Plugin;
|
||||||
|
import org.gradle.api.Project;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Rob Winch
|
||||||
|
*/
|
||||||
|
public class GlobalLockPlugin implements Plugin<Project> {
|
||||||
|
@Override
|
||||||
|
public void apply(Project project) {
|
||||||
|
project.getTasks().register("writeLocks", GlobalLockTask.class, writeAll -> {
|
||||||
|
writeAll.setDescription("Writes the locks for all projects");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
40
buildSrc/src/main/java/lock/GlobalLockTask.java
Normal file
40
buildSrc/src/main/java/lock/GlobalLockTask.java
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
package lock;
|
||||||
|
|
||||||
|
import org.gradle.api.Action;
|
||||||
|
import org.gradle.api.DefaultTask;
|
||||||
|
import org.gradle.api.Project;
|
||||||
|
import org.gradle.api.artifacts.Configuration;
|
||||||
|
import org.gradle.api.tasks.TaskAction;
|
||||||
|
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Rob Winch
|
||||||
|
*/
|
||||||
|
public class GlobalLockTask extends DefaultTask {
|
||||||
|
@TaskAction
|
||||||
|
public void lock() {
|
||||||
|
Project taskProject = getProject();
|
||||||
|
if (!taskProject.getGradle().getStartParameter().isWriteDependencyLocks()) {
|
||||||
|
throw new IllegalStateException("You just specify --write-locks argument");
|
||||||
|
}
|
||||||
|
writeLocksFor(taskProject);
|
||||||
|
taskProject.getSubprojects().forEach(new Consumer<Project>() {
|
||||||
|
@Override
|
||||||
|
public void accept(Project subproject) {
|
||||||
|
writeLocksFor(subproject);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void writeLocksFor(Project project) {
|
||||||
|
project.getConfigurations().configureEach(new Action<Configuration>() {
|
||||||
|
@Override
|
||||||
|
public void execute(Configuration configuration) {
|
||||||
|
if (configuration.isCanBeResolved()) {
|
||||||
|
configuration.resolve();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
@ -10,6 +10,12 @@ if (!project.hasProperty("reactorVersion")) {
|
|||||||
ext.reactorVersion = "Dysprosium-SR+"
|
ext.reactorVersion = "Dysprosium-SR+"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!project.hasProperty("locksDisabled")) {
|
||||||
|
dependencyLocking {
|
||||||
|
lockAllConfigurations()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
dependencyManagement {
|
dependencyManagement {
|
||||||
imports {
|
imports {
|
||||||
mavenBom "org.springframework:spring-framework-bom:$springVersion"
|
mavenBom "org.springframework:spring-framework-bom:$springVersion"
|
||||||
|
Loading…
Reference in New Issue
Block a user