# Plugin development best practices example

**URL:** <https://discuss.gradle.org/t/plugin-development-best-practices-example/4083>\
**Category:** Old Forum Archive\
**Created:** [September 2, 2014, 9:14am UTC](https://discuss.gradle.org/t/plugin-development-best-practices-example/4083 "2014-09-02T09:14:00Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Heinrich\_Filter](https://avatars.discourse-cdn.com/v4/letter/h/b487fb/32.png) [@Heinrich\_Filter](https://discuss.gradle.org/u/Heinrich_Filter)\
**Post date:** [September 2, 2014, 9:14am UTC](https://discuss.gradle.org/t/plugin-development-best-practices-example/4083/1 "2014-09-02T09:14:00Z")

</div>

We are currently developing some plugins for Gradle.

Are there any plugins that you can recommend as examples of well designed plugins?

More specifically, the [2014 Gradle Roadmap](http://www.gradle.org/roadmap) says this:

> What we are working on right now is removing the concept of a distinct configuration phase altogether, resulting in a single execution phase. Configuration will be modelled as tasks which have inputs and outputs like normal Gradle tasks.

Any plugins that already do this?

Regards, Heinrich

---

<div class="post-metadata">

**Author:** ![erdi](https://sea1.discourse-cdn.com/gradle/user_avatar/discuss.gradle.org/erdi/32/24_2.png) [@erdi](https://discuss.gradle.org/u/erdi)\
**Post date:** [September 12, 2014, 7:26am UTC](https://discuss.gradle.org/t/plugin-development-best-practices-example/4083/2 "2014-09-12T07:26:00Z")

</div>

There are some core plugins that are using this mechanism (which we call “new configuration model”) it but it’s still very much work in progress and will definitely change over the next couple of months as we iron things out. I don’t think that you should base your plugins on it as of now (because it’s far from feature parity with the current mechanism) but if you’re interested then have a look at the new [JavaLanguagePlugin](https://github.com/gradle/gradle/blob/master/subprojects/language-java/src/main/java/org/gradle/language/java/plugins/JavaLanguagePlugin.java) and the plugins it applies to a project.
