Play 標準的應用目錄佈局

標準的應用目錄佈局

Play 應用的目錄佈局是標準化的,這樣可保持儘量的簡單. 一個標準的 Play 應用看起來如下:

app                      → 應用程序源文件
 └ assets                → 待編譯的資源文件
    └ stylesheets        → 比如放置 LESS CSS 源文件
    └ javascripts        → 比如放置 CoffeeScript 源文件
 └ controllers           → 應用的控制器
 └ models                → 應用的業務層
 └ views                 → 視圖模板
conf                     → 配置文件和其他無需編譯的放在 classpath 下的文件
 └ application.conf      → 主配置文件
 └ routes                → 路由定義文件
public                   → 公共資源
 └ stylesheets           → CSS 樣式文件
 └ javascripts           → Javascript 腳本文件
 └ images                → 圖片
project                  → sbt 配置文件
 └ build.properties      → sbt 項目屬性配置
 └ Build.scala           → 應用構建腳本
 └ plugins.sbt           → sbt 插件配置
lib                      → 不受管理的庫依賴
logs                     → 標準的日誌目錄
 └ application.log       → 默認的日誌文件
target                   → 構建生成的東西
 └ scala-2.9.1              
    └ cache              
    └ classes            → 編譯生成的類文件
    └ classes_managed    → 受管理的類文件 (如模板等生成的)
    └ resource_managed   → 受管理的資源文件 (如 Less 等生成的)
    └ src_managed        → 產生的源文件 (如模板等)
test                     → 單元和功能性測試的源文件目錄

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 路由文件中加入以下配置實現的:

# Map static resources from the /public folder to the /assets URL path
GET     /assets/*file               controllers.Assets.at(path="/public", file)

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 文件:

logs
project/project
project/target
target
tmp

Unmi 注: 也就是說上面那些文件或目錄不應該加到版本服務器上, 只需要保留在每個開發者本地機器上即可。這個是 play new 爲你生成的給 Git 用的 .gitignore 文件, 用 SVN 等別的版本管理服務時請作相應的忽略操作。

用 Play 2.0.4 創建的項目的 .gitignore 文件內容行數比較多,是:

logs
project/project
project/target
target
tmp
.history
dist
/.idea
/*.iml
/out
/.idea_modules
/.classpath
/.project
/RUNNING_PID

發佈了3 篇原創文章 · 獲贊 1 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章