Play框架2.5.6教程——Play应用的剖析

Play应用的布局

Play应用的布局是以尽可能简单为标准的。第一次成功编译之后,Play应用如下所示:

app                       Application sources
  assets                 Compiled asset sources
     stylesheets         Typically LESS CSS sources
     javascripts         Typically CoffeeScript sources
  controllers            Application controllers
  models                 Application business layer
  views                  Templates
build.sbt                 Application build script
conf                      Configurations files and other non-compiled resources (on classpath)
  application.conf       Main configuration file
  routes                 Routes definition
dist                      Arbitrary files to be included in your projects distribution
public                    Public assets
  stylesheets            CSS files
  javascripts            Javascript files
  images                 Image files
project                   sbt configuration files
  build.properties       Marker for sbt project
  plugins.sbt            sbt plugins including the declaration for Play itself
lib                       Unmanaged libraries dependencies
logs                      Logs folder
  application.log        Default log file
target                    Generated stuff
  resolution-cache       Info about dependencies
  scala-2.11
     api                 Generated API docs
     classes             Compiled class files
     routes              Sources generated from routes
     twirl               Sources generated from templates
  universal              Application packaging
  web                    Compiled web assets
test                      source folder for unit or functional tests

app目录

app包含所有可执行的文件,Java和Scala源代码,模板和编译之后的资源文件。


在app目录中有三个包,每一个对应MVC设计模式中的一个组件:

app/controllers

app/models

app/views


当然你可以增加你自己的包,比如增加一个app/utils包。


注意在Play中,controllers,models和views包的名字只是目前约定的,如果需要的话可以更改,(比如在每一个之前加上前缀com.yourcompany)。

对于编译后的资源文件,比如LESS资源和CoffeeScript资源也有可选择的目录叫app/assets。


Public目录

存储在public目录中的资源是直接为服务器服务的静态资源。


这个目录分成三个子目录,分别存放图片,CSS样式表和JavaScript文件,你应该按照这样的目录来组织你的静态资源,从而保持所有Play应用的一致性。


在一个新创建的目录中,Public目录映射到/assertURl的目录中,但是你可以很简单地改变这些目录,甚至可以为你的资源设置几个不同的目录。


conf目录

conf包含应用的配置文件。其中有两个主要的配置文件:

application.conf:应用的主要配置文件,包含了配置的参数。

routes:注释文件的路径。


如果你需要为你的应用添加特殊的配置选项,最好将更多的选项加到application.conf中。


如果一个类库需要特殊的配置文件,尽量在conf目录下创建。


lib目录

lib目录是可选择的并且包含非管理的库依赖,你想要在编译系统外手动管理的所有jar包,只需将jar包存到该目录,它们将会增加到你的应用路径中。


build.sbt文件

你的项目主要构建声明通常在项目根文件中的build.sbt创建。在project目录中的.scala文件也可以用来声明你项目的创建。


project目录

project目录包含sbt构建定义:


plugins.sbt定义项目要使用的sbt插件。

build.properties包含用来创建你app的sbt版本。


target目录

target目录包含编译系统生成的任意文件,如果你想知道在这里生成了什么,这个目录很有用。


classes包含了所有编译好的类(从Java跟Scala资源文件编译成的)。

classes_managed只包含这个框架管理的类(比如路由器或模板系统生成的类)。它可以增加这个类文件夹作为你的IDE项目外部的类文件夹。

resource_managed包含生成好的资源,比如LESS CSS和CoffeeScript编译结果的典型编译后的资源文件。

src_managed包含生成的资源,比如模板系统生成的Scala资源。

web包含被sbt-web处理后的资源,比如来自app/assets和public文件夹的资源。


典型的.gitignore文件

生成的文件夹应该被你的版本控制系统忽视。这是一个Play应用典型的·.gitignore文件:

logs
project/project
project/target
target
tmp
dist
.cache

默认的SBT布局

你也可以选择使用SBT和Maven默认的布局。请注意这些布局是试验性的,可能会存在问题。为了使用这个布局,你不能使用布局的相关插件并给可用的模板建立明确的检查:

disablePlugins(PlayLayoutPlugin)
PlayKeys.playMonitoredFiles ++= (sourceDirectories in (Compile, TwirlKeys.compileTemplates)).value
下面的代码会阻止Play覆盖默认的SBT布局:

build.sbt                   Application build script
src                         Application sources
  main                     Compiled asset sources
     java                  Java sources
        controllers        Java controllers
        models             Java business layer
     scala                 Scala sources
        controllers        Scala controllers
        models             Scala business layer
     resources             Configurations files and other non-compiled resources (on classpath)
        application.conf   Main configuration file
        routes             Routes definition
     twirl
        views              Templates
     assets                Compiled asset sources
        css                Typically LESS CSS sources
        js                 Typically CoffeeScript sources
     public                Public assets
        css                CSS files
        js                 Javascript files
        images             Image files
  test                     Unit or functional tests
     java                  Java source folder for unit or functional tests
     scala                 Scala source folder for unit or functional tests
     resources             Resource folder for unit or functional tests
  universal                Arbitrary files to be included in your projects distribution
project                     sbt configuration files
  build.properties         Marker for sbt project
  plugins.sbt              sbt plugins including the declaration for Play itself
lib                         Unmanaged libraries dependencies
logs                        Logs folder
  application.log          Default log file
target                      Generated stuff
  scala-2.11.7
     cache
     classes               Compiled class files
     classes_managed       Managed class files (templates, ...)
     resource_managed      Managed resources (less, ...)
     src_managed           Generated sources (templates, ...)


























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值