3.4.7 Plugin Dependencies

As of Griffon 0.9 you can declaratively specify dependencies on plugins rather than using the install-plugin command:

    plugins {
        runtime ':artifacts:0.2'
    }

If you don't specify a group id the default plugin group id of `org.griffon.plugins` is used. You can specify to use the latest version of a particular plugin by using "latest.integration" as the version number:

    plugins {
        runtime ':artifacts:latest.integration'
    }

#### Integration vs. Release

The "latest.integration" version label will also include resolving snapshot versions. If you don't want to include snapshot versions then you can use the "latest.release" label:

    plugins {
        runtime ':artifacts:latest.release'
    }

> The "latest.release" label only works with Maven compatible repositories. If you have a regular SVN-based Griffon repository then you should use "latest.integration".

And of course if you are using a Maven repository with an alternative group id you can specify a group id:

    plugins {
        runtime 'mycompany:artifacts:latest.integration'
    }

#### Plugin Exclusions

You can control how plugins transitively resolves both plugin and JAR dependencies using exclusions. For example:

    plugins {
        runtime( ':weceem:0.8' ) {
            excludes "searchable"
        }
    }

Here we have defined a dependency on the "weceem" plugin which transitively depends on the "searchable" plugin. By using the `excludes` method you can tell Griffon not to transitively install the searchable plugin. You can combine this technique to specify an alternative version of a plugin:

    plugins {
        runtime( ':weceem:0.8' ) {
            excludes "searchable" // excludes most recent version
        }
        runtime ':searchable:0.5.4' // specifies a fixed searchable version
    }

You can also completely disable transitive plugin installs, in which case no transitive dependencies will be resolved:

    plugins {
        runtime( ':weceem:0.8' ) {
            transitive = false
        }
        runtime ':searchable:0.5.4' // specifies a fixed searchable version
    }