PlayFramework Introduction

From WikiOD

Remarks[edit | edit source]

This section provides an overview of what playframework is, and why a developer might want to use it.

It should also mention any large subjects within playframework, and link out to the related topics. Since the Documentation for playframework is new, you may need to create initial versions of those related topics.

Getting started with Play 2.4.x/2.5.x - Windows, Java[edit | edit source]

Installations[edit | edit source]

Download and install:

Java 8 - download the relevant installation from Oracle site.

Activator - download zip from www.playframework.com/download and extract files to the target Play folder, for example to:

c:\Play-2.4.2\activator-dist-1.3.5

sbt - download from www.scala-sbt.org.

Define environment variables:

JAVA_HOME, for example:

c:\Program Files\Java\jdk1.8.0_45

PLAY_HOME, for example:

c:\Play-2.4.2\activator-dist-1.3.5;

SBT_HOME for example:

c:\Program Files (x86)\sbt\bin;

Add path to all three installed programs to the path variables:

 %JAVA_HOME%\bin;%PLAY_HOME%;%SBT_HOME%;

Play 2.5 installation fix[edit | edit source]

Installation of Play 2.5.3 (the last 2.5 stable release) comes with a minor problem. To fix it:

  1. Edit the file activator-dist-1.3.10\bin\activator.bat and add the "%" character at the end of line 55. The proper line should be like this: set SBT_HOME=%BIN_DIRECTORY%
  2. Create sub-directory conf under the activator root directory activator-dist-1.3.10.
  3. Create in the conf directory an empty file named sbtconfig.txt.

Creating a new application with CLI[edit | edit source]

Start the cmd from the directory, where a new application should be created. The shortest way to create a new application via CLI is to provide an application name and template as CLI arguments:

  activator new my-play-app play-java

It is possible to run just:

  activator new

In this case you will be prompted to select the desired template and an application name.

For Play 2.4 add manually to project/plugins.sbt:

// Use the Play sbt plugin for Play projects
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.4.x")

Be sure to replace 2.4.x here by the exact version you want to use. Play 2.5 generates this line automatically.

Make sure that the proper sbt version is mentioned in project/build.properties. It should match to sbt version, installed on your machine. For example, for Play2.4.x it should be:

sbt.version=0.13.8

That's it, a new application now may be started:

  cd my-play-app
  activator run

After a while the server will start and the following prompt should appear on the console:

  [info] p.c.s.NettyServer - Listening for HTTP on /0:0:0:0:0:0:0:0:9000
  (Server started, use Ctrl+D to stop and go back to the console...)

The server by default is listening on port 9000. You can request it from a browser by the URL http://localhost:9000. You will get something like this:

Getting_started_with_playframework

Running activator on a different port[edit | edit source]

By default the activator runs an application on port 9000 for http or 443 for https. To run an application on the different port (http):

activator "run 9005"

Play 1 Installation[edit | edit source]

Prerequisites[edit | edit source]

To run the Play framework, you need Java 6 or later. If you wish to build Play from source, you will need the Git source control client to fetch the source code and Ant to build it.

Be sure to have Java in the current path (enter java --version to check)

Play will use the default Java or the one available at the $JAVA_HOME path if defined.

The play command line utility uses Python. So it should work out of the box on any UNIX system (however it requires at least Python 2.5).

Installation from the binary package[edit | edit source]

Generic instructions[edit | edit source]

In general, the installation instructions are as follows.

  1. Install Java.
  2. Download the latest Play binary package and extract the archive.
  3. Add the ‘play’ command to your system path and make sure it is executable.

Mac OS X[edit | edit source]

Java is built-in, or installed automatically, so you can skip the first step.

  1. Download the latest Play binary package and extract it in /Applications.
  2. Edit /etc/paths and add the line /Applications/play-1.2.5 (for example).

An alternative on OS X is:

  1. Install HomeBrew
  2. Run brew install play

Linux[edit | edit source]

To install Java, make sure to use either the Sun-JDK or OpenJDK (and not gcj which is the default Java command on many Linux distros)

Windows[edit | edit source]

To install Java, just download and install the latest JDK package. You do not need to install Python separately, because a Python runtime is bundled with the framework.

Installing through `sbt`[edit | edit source]

If you already have sbt installed I find it easier to create a minimal Play project without activator. Here's how.

# create a new folder
mkdir myNewProject
# launch sbt
sbt

When previous steps are completed, edit build.sbt and add the following lines

name := """myProjectName"""

version := "1.0-SNAPSHOT"

offline := true

lazy val root = (project in file(".")).enablePlugins(PlayScala)
scalaVersion := "2.11.6"
# add required dependencies here .. below a list of dependencies I use
libraryDependencies ++= Seq(
  jdbc,
  cache,
  ws,
  filters,
  specs2 % Test,
  "com.github.nscala-time" %% "nscala-time" % "2.0.0",
  "javax.ws.rs" % "jsr311-api" % "1.0",
  "commons-io" % "commons-io" % "2.3",
  "org.asynchttpclient" % "async-http-client" % "2.0.4",
  cache
)

resolvers += "scalaz-bintray" at "http://dl.bintray.com/scalaz/releases"

resolvers ++= Seq("snapshots", "releases").map(Resolver.sonatypeRepo)

resolvers += "Typesafe Releases" at "http://repo.typesafe.com/typesafe/maven-releases/"

Finally, create a folder project and inside create a file build.properties with the reference to the version of Play you would like to use

 addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.4.3")

That's it! Your project is ready. You can launch it with sbt. From within sbt you have access to the same commands as with activator.

Credit:Stack_Overflow_Documentation