From 7e6039356d3887ebdab597b890f73d701f9e6dc7 Mon Sep 17 00:00:00 2001 From: Major- Date: Mon, 20 Aug 2018 18:35:54 +0100 Subject: [PATCH] Throw custom exception on missing plugin dependency --- .../build/plugin/ApolloPluginExtension.groovy | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/buildSrc/src/main/groovy/org/apollo/build/plugin/ApolloPluginExtension.groovy b/buildSrc/src/main/groovy/org/apollo/build/plugin/ApolloPluginExtension.groovy index aa554e47..a89ff51d 100644 --- a/buildSrc/src/main/groovy/org/apollo/build/plugin/ApolloPluginExtension.groovy +++ b/buildSrc/src/main/groovy/org/apollo/build/plugin/ApolloPluginExtension.groovy @@ -68,9 +68,25 @@ class ApolloPluginExtension { def setDependencies(List dependencies) { dependencies.each { - project.dependencies.add('compile', project.findProject(":game:plugin:$it")) + def project = project.findProject(":game:plugin:$it") + if (project == null) { + throw new MissingPluginDependencyException(name, it) + } + + this.project.dependencies.add('compile', project) } this.dependencies = dependencies } } + +/** + * A {@link RuntimeException} thrown when a plugin dependency was missing. + */ +class MissingPluginDependencyException extends RuntimeException { + + MissingPluginDependencyException(String plugin, String dependency) { + super("Missing dependency in the `$plugin` plugin: failed to resolve `$dependency`.") + } + +} \ No newline at end of file