该类的作用:一个插件,增加了对maven风格可选依赖项的支持。创建一个新的可选配置。可选配置是项目的编译和运行时类路径的一部分,但不影响依赖项目的类路径。
@Override public void apply(Project project) { //获取可选项的配置信息 Configuration optional = project.getConfigurations().create("optional"); //设置为不可以被消费 optional.setCanBeConsumed(false); //设置为不可以被取消 optional.setCanBeResolved(false); //获取项目里面的插件 project.getPlugins().withType(JavaPlugin.class, (javaPlugin) -> {SourceSetContainer sourceSets = //获取每个插件的资源set project.getExtensions().getByType(JavaPluginExtension.class) .getSourceSets(); sourceSets.all((sourceSet) -> { project.getConfigurations().getByName(sourceSet.getCompileClasspathConfigurationName()).extendsFrom(optional); //根据compileClasspath获取配置 project.getConfigurations().getByName(sourceSet.getRuntimeClasspathConfigurationName()).extendsFrom(optional); }); }); }