标准的应用目录布局
Play 应用的目录布局是标准化的,这样可保持尽量的简单. 一个标准的 Play 应用看起来如下:
app/ 目录
app
目录饮食了所有的执行构件: Java 和 Scala 的源代码, 模板和需编译的资源文件.
在 app 目录中有三个标准包, 它们各自对应着 MVC 构架模式的每一类部件:
app/controllers
app/models
app/views
你当然可以在其中加入自己的包, 如 app/utils
包.
注: 在 Play 2.0 中, controllers, models 和 views 三个包的命名是比较合理的, 如果需要你也可以更改这些包名 (比如给包名都加上前缀
com.yourcompany
).
其中有一个可选的目录叫做 app/assets
用于存放须编译的资源文件, 像 LESS 源文件 和 CoffeeScript 源文件 .
public/ 目录
存放在 public
目录中的资源文件是静态的, 它们直接被 Web 服务器所使用(Unmi 注: 无需预处理).
这个目录分成三个标准的子目录,分别用于存放图片文件, CSS 样式表文件和 JavaScript 文件. 你应该像这样组织你的静态资源文件以保持所有的 Play 应用的一致性.
在新创建的应用中,
/public
目录被映射在了/assets
URL 路径上, 不过你可以很轻易的改变这一映射规则, 甚至是使用数个存放静态资源的目录.
Unmi 注: Play 完成 /assets URL 到 /public 的映射是通过在 routes 路由文件中加入以下配置实现的:
conf/ 目录
conf
目录包含了应用的配置文件. 这儿有两个主要的配置文件:
application.conf
, 应用的主配置文件, 里面包含了标准的配置参数routes
, 路由定义文件.
假如需要为应用添加特别的配置项, 较好的办法是在直接在 application.conf
文件中加入更好的配置项.
Unmi 注: 如果你确实有必须写一个独立的配置文件,而且里面的配置项也比较多,可以在 application.conf 用 @include.extra=extra.conf 引入进来,这样可读性要比全堆在 application.conf 一个文件中要高。
如果某个库需要自己的配置文件, 尽量也放在 conf
目录中.
lib/ 目录
lib
目录是可选的, 它包含了不受管理的库依赖. 所有的无法用构建系统需手工管理的 JAR 包. 只需丢到这个目录中去,它们就会被添加到应用的 classpath 中去.
project/ 目录
project
目录饮食了 sbt 构建定义文件:
plugins.sbt
定义了项目所用到的 sbt 插件Build.scala
定义了你的应用的构建脚本.
target/ 目录
target
目录包含了一切由构建系统生成的文件. 它让你知晓构建时都产生了些什么是很有用处的.
classes/
包含了所有编译后的类文件 (来自于 Java 和 Scala 源文件的).classes_managed/
仅仅包含了由框架管理而生成的类 (比如由路由和模板系统生成的类). 在你的 IDE 项目中, 这有助于你以外部类目录的方式添加一个类目录.resource_managed/
包含生成的资源文件, 比如说由编译像 LESS CSS 和 CoffeeScript 产生的目标文件.src_managed/
包含产生的源文件, 如由模板系统生成的 Scala 源文件.
基本的.gitignore 文件
自动产生的目录应该让版本控制系统忽略掉的. 这是一个 Play 应用基本的.gitignore
文件:
Unmi 注: 也就是说上面那些文件或目录不应该加到版本服务器上, 只需要保留在每个开发者本地机器上即可。这个是 play new 为你生成的给 Git 用的 .gitignore 文件, 用 SVN 等别的版本管理服务时请作相应的忽略操作。
用 Play 2.0.4 创建的项目的 .gitignore 文件内容行数比较多,是: