Skip to content

Play framework template #
Find similar titles

Structured data

Category
Programming

Play framework 프로젝트 템플릿 생성 #

  • Play framework 1.x 때와 마찬가지로 2.0에서도 play 명령어를 통해 어플리케이션을 생성하고 실행할 수 있다. Play 어플리케이션을 생성하려면 play new application_name 을 실행하면 손쉽게 프로젝트 템플릿을 생성할 수 있다.
  • Scala 기반 Play framework 프로젝트 템플릿의 경우 Scala 버전에 종속적이기 때문에 최신 버전의 프로젝트 템플릿 예제를 그대로 이용하는데 문제가 있을 수 있기 때문에 Scala기반 빌드툴인 sbt를 이용해 생성할 수밖에 없으며, 자바의 빌드도구인 Maven과 유사한 Activator를 이용해 Scala기반 Play framework 프로젝트 생성 방법을 알아보겠다.

Activator 프로젝트 템플릿 받아오기 #

프로젝트 템플릿 사용하기 위해선 ActivatorScala가 미리 설치가 되어 있어야 한다. 설치가 완료되면 Activator의 new 명령어를 이용한 scala 2.3 플레이 프로젝트 받아올 수 있다.

 C:\anything>activator new scala play-2.3-highlights
 Fetching the latest list of templates...
 OK, application "scala" is being created using the "play-2.3-highlights" template.

 To run "scala" from the command line, "cd scala" then:
 C:\anything\scala/activator run

 To run the test for "scala" from the command line, "cd scala" then:
 C:\anything\scala/activator test

 To run the Activator UI for "scala" from the command line, "cd scala" then:
 C:\anything\scala/activator ui

 C:\anything>dir
 2015-08-16  오후 05:57    <DIR>          scala
           0개 파일                   0 바이트
           3개 디렉터리  535,963,959,296 바이트 남음
  • 프로젝트 템플릿 폴더 확인
    • app/ : 어플리케이션 핵심 소스 폴더. scala 소스 파일들이 존재. app/ 폴더 안에는 controllers와 views 폴더가 있고, models 폴더를 추가해 어플리케이션을 작성한다.
    • conf/ : 어플리케이션의 설정파일 폴더. 메인설정인 application.conf 파일과 라우팅정책을 정의하는 routes 파일이 있다.
    • project/ : sbt를 기반으로 하는 빌드 스크립트가 있는 폴더.
    • public/ : js, css 같은 정적파일이 있는 폴더.
    • test/ : 기본 폴더는 아니지만 테스트 파일들이 위치하는 폴더.

프로젝트 템플릿 컴파일 실행 #

프로젝트 컴파일 실행 : Activator의 compile명령을 이용해 다운받은 프로젝트 템플릿을 JVM에서 실행할 수 있는 상태로 컴파일한다. 주의해야 할 것은 시스템에 등록된 Activator를 이용하지 않고 다운로드 받은 템플릿 프로젝트 안에 있는 activator 실행 파일을 이용해야만 정상적으로 컴파일 될 수 있다.

C:\anything\scala>activator compile
[info] Loading project definition from C:\anything\scala\project
[info] Updating {file:/C:/anything/scala/project/}scala-build...
[info] Resolving org.scala-sbt.ivy#ivy;2.3.0-sbt-fccfbd44c9f64523b61398a0155784d
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[info] Set current project to scala (in build file:/C:/anything/scala/)
[info] Updating {file:/C:/anything/scala/}root...
[info] Resolving jline#jline;2.12.1 ...
[info] Done updating.
[warn] There may be incompatibilities among your library dependencies.
[warn] Here are some of the libraries that were evicted:
[warn]  * org.webjars:jquery:1.9.0 -> 2.1.0-2
[warn] Run 'evicted' to see detailed eviction warnings
[info] Compiling 7 Scala sources and 1 Java source to         C:\anything\scala\target\s
cala-2.11\classes...
[success] Total time: 28 s, completed 2015. 8. 16 오후 6:11:00

컴파일이 완료되면 프로젝트 메인 폴더에 build.sbt 파일이 생성되고, build.sbt 파일을 열어 Scala 버전을 시스템에 설치된 버전으로 변경해 해야 한다. 안타깝게도 Play frameworkScala 버전은 완벽하게 버전 호환을 보장하지 않기 때문에, Play framework 2.3은 Scala 2.10.x 버전과 가장 호환성이 좋은 것으로 보인다. 다운받은 프로젝트 템플릿은 Scala 2.11.6 버전을 기준으로 제공하기 때문에 2.10.5 버전으로 변경해 주어야 한다.

name := """scala"""
version := "2.3-SNAPSHOT"
lazy val root = (project in file(".")).enablePlugins(PlayScala)
// scalaVersion := "2.11.6"
scalaVersion := "2.10.5"

libraryDependencies ++= Seq(
  "org.webjars" % "bootstrap" % "3.1.1",
  "org.webjars" % "jquery" % "2.1.0-2",
  "org.webjars" % "requirejs" % "2.1.11-1",
  // Test dependencies
  "org.webjars" % "rjs" % "2.1.11-1-trireme" % "test",
  "org.webjars" % "squirejs" % "0.1.0" % "test"
)

Play framework 웹 어플리케이션 실행 #

Activator의 run 명령어를 이용해 바로 웹 어플리케이션이 실행되고, 웹 브라우저를 통해 실행 결과를 확인할 수 있다.

C:\anything\scala>activator run
[info] Loading project definition from C:\anything\scala\project
[info] Set current project to scala (in build file:/C:/anything/scala/)
[info] Updating {file:/C:/anything/scala/}root...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[warn] There may be incompatibilities among your library dependencies.
[warn] Here are some of the libraries that were evicted:
[warn]  * org.webjars:jquery:1.9.0 -> 2.1.0-2
[warn] Run 'evicted' to see detailed eviction warnings

--- (Running the application, auto-reloading is enabled) ---

[info] play - 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...)

Suggested Pages #

0.0.1_20140628_0