Skip to content

Play framework template #
Find similar titles

You are seeing an old version of the page. Go to latest version

[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] 프로젝트 템플릿 받아오기 #

프로젝트 템플릿 사용하기 위해선 [Activator]와 [Scala]가 미리 설치가 되어 있어야 한다. 설치가 완료되면 [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 framework]와 [Scala] 버전은 완벽하게 버전 호환을 보장하지 않기 때문에, [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...)
0.0.1_20210630_7_v33