play2.x第一课
1、前置条件
开发工具:IDEA的开发,sbt、scala
需要注重的是sbt的版本问题:1.2.8(常常的系统默认的版本0.13.15版本影响的下载play-sbt-plugin) 、scala 2.12、play 2.7.x
第一次的sbt准备的插件大概40多分钟,主要是因为play的sbt插件和build.sbt内部的相关play的模块即(
libraryDependencies ++= Seq( jdbc , ehcache , ws , specs2 % Test , guice )
)相关的jdbc模块等等。这是IDEA的play2.x的初始模板(存在一些差异,也是可能无法正确的弄好的、注意sbt版本。。(去c盘的user/用户/.sbt内部看具体信息)))。
2、明确play2.x的MVC的结构
- Play项目结构介绍
在第一次编译之后,Play项目的结构如下: app → 项目源码目录 └ controllers → 控制层 └ models → 业务层 └ views → 模板层 build.sbt → 项目构建脚本 conf → 配置文件 (on classpath) └ application.conf → 主配置文件 └ routes → 路由配置 public → 静态文件目录 └ stylesheets → CSS 文件 └ javascripts → Javascript 文件 └ images → Image 文件 project → sbt 配置文件 └ build.properties → 配置sbt版本 └ plugins.sbt → 配置sbt插件 lib → 第三方jar包依赖 logs → 日志目录 └ application.log → 默认日志文件 target → 构建时动态生成目录 └ resolution-cache → 依赖信息 └ scala-2.11 └ api → 生成的API文档 └ classes → 编译后的class文件 └ routes → 从routes文件生成的源码 └ twirl → 从模板文件生成的源码 └ universal → 项目打包目录 test → 测试目录
在日常开发中我们通常跟以下几个目录和文件打交道,下面分别介绍。
(1)app目录
app是项目源码的根目录,包含了所有的Java和Scala源码文件。该目录下默认有三个package,分别对应MVC三个层:
-
app/controllers
-
app/models
-
app/views
当然,你也可以在app目录下创建自定义package,例如app/utils
。默认的三个package名称建议不要修改。
(2)public目录
该目录用于存放静态文件,默认有三个子目录分别用于存放css
,js
和images
文件:
-
stylesheets
-
javascripts
-
images
这三个文件夹名称可以自定义。在通过浏览器访问静态文件时,public
目录映射到URL的地址是/assets
,这个映射关系可以在conf/routes
文件中修改。例如images
文件夹下favicon.ico
文件对应的URL地址是:/assets/favicon.ico
。
(3)conf目录
该目录用于存放配置文件,默认包含项目配置文件application.conf
和路由配置文件routes
。其它的配置文件如日志配置文件logback.xml
,多语言配置文件messages.*
均可放在该目录下。Play项目在启动时会将conf
目录加入classpath
。
(4)build.sbt文件
该文件是SBT项目的构建文件,在这里可以配置项目名称、项目版本号、Scala版本、Play模块以及第三方依赖等等。
(5)lib目录
如果有些依赖无法在build.sbt
文件中声明,例如公司内部维护的jar包,可以直接将这个jar包放进lib
目录,SBT会自动将其添加为项目依赖。
(6)project目录
该目录通常不会用到,除非一下两种情况:
-
修改
build.properties
升级SBT版本 -
修改
plugins.sbt
升级Play版本