Skip to content
This repository

Anatomía de una aplicación Play 2.0

La estructura de directorios estándar de una aplicación

La estructura de directorios de una aplicación de Play está estandarizada a fin de mantener las cosas tan simples como sea posible. Una aplicación estándar de play presenta el siguiente aspecto:

app                      → Recursos de la aplicación
 └ assets                → Código fuente de los recursos html que serán compilados
    └ stylesheets        → Hojas de estilo, por lo general encontrará los fuentes de los archivos LESS CSS
    └ javascripts        → Código javascript, por lo general encontrará los fuentes de CoffeScript
 └ controllers           → Controladores de la aplicación
 └ models                → Capa de negocios de la aplicación
 └ views                 → Templates
conf                     → Archivos de configuración
 └ application.conf      → Archivo principal de configuración
 └ routes                → Definición de las rutas
public                   → Recursos públicos
 └ stylesheets           → Hojas de estilo, archivos CSS
 └ javascripts           → Archivos javascript
 └ images                → Archivos de imágenes
project                  → Archivos de configuración de sbt
 └ build.properties      → Propiedades del proyecto sbt
 └ Build.scala           → Script para construir la aplicación
 └ plugins.sbt           → Plugins de sbt
lib                      → Librerías y dependencias que no son manejadas por sbt
logs                     → Carpeta de logs estándar
 └ application.log       → Archivo de log por defecto
target                   → Archivos generados por Play
 └ scala-2.9.1              
    └ cache              
    └ classes            → Archivos con las clases compiladas
    └ classes_managed    → Archivos con las clases compiladas de los recursos manjados por play (templates, ...)
    └ resource_managed   → Recursos manejados por play (less, ...)
    └ src_managed        → Código fuente automáticamante generado por play (templates, ...)
test                     → Carpeta con los fuentes para las pruebas unitarias y funcionales

La carpeta app/

La carpeta app contiene todos los artefactos ejecutables: código fuente Java y Scala, templates y el código fuente de los recursos compilados.

Hay tres paquetes estándar en el directorio app, uno por cada componente del patrón MVC:

  • app/controllers
  • app/models
  • app/views

Por supuesto, puede agregar sus propios paquetes, por ejemplo un paquete app/utils.

Tenga en cuenta que en Play 2.0, los paquetes controllers, models y views no son más que nombres elegidos por convención, así que puede cambiarlos de acuerdo a sus necesidades (por ejemplo agregando un prefijo com.yourcompany).

También hay una carpeta opcional llamada app/assets para recursos compilados, como pueden ser archivos fuentes de LESS y archivos fuentes de CoffeeScript.

La carpeta public/

Los recursos almacenados en la carpeta public son recursos estáticos que son servidos directamente por el servidor Web.

Esta carpeta está a su vez dividida en tres subcarpetas estándar para imágenes, hojas de estilo CSS y archivos de javascript. Debería respetar esta organización para mantener todas sus aplicacioens de Play con una estructura coherente.

En una aplicación recién creada, la carpeta /public estará vinculada con el URL /assets, pero fácilmente puede cambiar eso, o incluso usar múltiples directorios para sus recursos estáticos.

La carpeta conf/

La carpeta conf contiene los archivos de configuración de la aplicación. Hay dos archivos principales:

  • application.conf, el archivo principal de configuración de la aplicación, el cual contiene parámetros de configuración estándar.
  • routes, el archivo con la definición de las rutas.

Si precisa agregar opciones de configuración específicas a su aplicación, es una buena idea agregar más opciones al archivo application.conf.

Si una librería precisa un archivo de configuración específico, procure guardarlo en la carpeta conf.

La carpeta lib/

La carpeta lib es opcional, y contiene las librerías y dependencia que no son manejadas por sbt, como pueden ser los archivos JAR que desee agregar manualmente por fuera del systema de build. Simplemente copie su archivo JAR en la carpeta lib y el mismo será agregado automáticamente a su classpath.

La carpeta project/

La carpeta project contiene la configuración de sbt de su proyecto:

  • plugins.sbt define los plugins utilizados por su proyecto
  • Build.scala define el archivo de build de su aplicación

La carpeta target/

La carpeta target contiene todos los archivos generados por el sistema de builds. Puede resultar de suma utilidad estar al tanto de los archivos que se generan allí.

  • classes/ contiene todas las clases compiladas (tanto de fuentes de Java como de Scala)
  • classes_managed/ contiene únicamente las clases que son manejadas por el framework (tales como las clases generadas por el router o el sistema de templates). Puede resultar útil agregar esta carpeta como una carpeta externa de clases al configurar su IDE.
  • resource_managed/ contiene los recursos generados por play, típicamente recursos compilados como pueden ser los archivo CSS que surgen de procesar los archivo LESS y archivos fuentes Javascript generados al compilar los fuentes de CoffeScript.
  • src_managed/ contiene el código fuente generado por Play, tales como los fuentes de Scala generados por el sistema de templates.

Un típico archivo .gitignore

Las carpetas generadas por Play deberían ser excluidas de su sistema de control de código fuente. Aquí le presentamos un archivo .gitignore típico para una aplicación de Play:

logs
project/project
project/target
target
tmp

Próximos pasos: Usando la consola de Play 2.0

Something went wrong with that request. Please try again.