You are viewing the documentation for the 2.2.x release series. The latest stable release series is 3.0.x.

§Writing Plugins

Play comes with a few plugins predefined for all applications, these plugins are the following:

However, one can easily add a new plugin to an application.

  1. first step is to implement play.api.Plugin trait which has three methods: onStart, onStop and enabled - for example)
  2. this plugin should be available in the application either through pulling in it from a maven repository and referencing it
    as an app dependency or the plugin code can be part of a play application
  3. you can use it directly like app.plugin[MyPlugin].map(_.api.mymethod).getOrElse(throwMyerror) (where app is a reference to the current application which can be obtain by importing play.api.Play.current) however, it’s recommended to wrap it for convenience (for example, see this)
  4. in your app create a file: conf/play.plugins and add a reference to your plugin:


The number represents the plugin loading order, by setting it to > 10000 we can make sure it’s loaded after the global plugins.

Tip: If you are a scala developer but you want to share your plugin with java developers, you will need make sure your API is wrapped for Java users (see this and this for an example)

Found an error in this documentation? The source code for this page can be found here. After reading the documentation guidelines, please feel free to contribute a pull request. Have questions or advice to share? Go to our community forums to start a conversation with the community.