Play 2.0 中文资料 - 搭建你偏爱的 IDE

用 Play 进行工作其实很简单的. 你甚至不需要一个复杂的 IDE, 因为 Play 会在你对源文件作了修改之后自动编译和刷新, 因此你可以很轻易的使用一个简单的文本编辑器来工作.

然而, 使用一个现代的 Java 或 Scala IDE 或给予你很 Cool 生产效率, 比如即时的编译, 良好的重构和调试功能.

Eclipse

生成配置

Play 提供了一条命令简化了 Eclipse 配置. 为转换一个 Play 应用为有效的 Eclipse 项目, 使用 eclipsify 命令:

无需关联下载依赖的源文件 jars 包:

Unmi 注: 对于一个新建的项目,执行 eclipsify 之后会产生 Eclipse 必须的 .project, .classpath 和 .settings 文件,并且这个命令还会创建 test 和 target 目录。Play 1.x 的 play eclipsify 命令有些不同,它会生成一个 eclipse 目录,里面有三个分别用于运行, 调试和测试用的 launch 文件。

如果你希望获取到可用依赖的源文件包就 (这会要较长的时间, 可能一些源文件包根本找不到):

Unmi 注: 带了参数 with-source=true, play 会试图去下载依赖包的源文件和 javadoc 对应的 jar 包,比如对于 play-test_2.9.1.jar 依赖,它会试图下载 play-test_2.9.1-sources.jar 文件放在目录 $PLAY_HOME/repository/local/play/play-test_2.9.1/2.0.4/srcs 下, 也会尝试下载 play-test_2.9.1-javadoc.jar 到目录 $PLAY_HOME/repository/local/play/play-test_2.9.1/2.0.4/docs 中。并且会把它们在 Ecipse 中关联起来,实际上大部分的依赖是上载不以关联的 -soures.jar 和 -javadoc.jar 包的。

然后呢你需要通过 File/Import/General/Existing project… 菜单把项目导入到 Workspace 中来 (需事先编译好你的项目).

Unmi 注: 实际上,在执行 eclipsify 指令时就会帮你编译项目的。

你可以用 play debug 进到 Play 控制台,然后 run 命令来启动你的应用, 然后可以任何时候在 Connect JPDA launcher 上使用 Debug As 来启动一个调试会话. 停止调试会话不会停掉 Server.

Unmi 注: Play 2 的 eclipsify 命令转换项目时并不会生成 eclipse 目录, 所以也没有 Connect JPDA to myFirstApp.launch 这个配置直接给你启动调试会话。Play 1.x 的 eclipsify 才有这个东西,在 Play 2 中你也可以仿照着加上自己的 Connect JPDA launch 文件。因而对 Play 2 Eclipse 项目,自己不创建 Connect JPDA launch 文件的话就得到项目右键/Debug As/Debug Configurations 中新建一个 Remote Java Application 配置用于调试。

小贴士: 你可以 ~run 运行你的应用以开启在文件更改时直接编译的功能. 这种方式下, 当你在 view 目录中新建一个 Scala 模板时会被自动发现到并且自动编译. 如果你用通常的 run 的话, 你每次不得不手工来刷新浏览器.

假如你对应用作了重要的变动, 比如说改了 classpath, 要重新运行 eclipsify 来重新生成配置文件.

小贴士: 当你工作在团队中, 请不要提交 Eclipse 配置文件!

生成的配置文件包含了指向到你的框架安装所在的绝对路径. 这是特定于你本地的安装目录的. 当你工作在团队中, 每一个开发者必须保持它自己的 Eclipse 配置文件是私有的.

IntelliJ

生成配置

Play 提供了一个命令以简化 Intellij IDEA 的配置. 要转换一个 Play 应用成 IDEA 工作模块(working IDEA module), 使用 idea 命令:

Unmi 注: Play 1.x 要转换为 IDEA 项目时用的命令是: play idealize

无需关联下载依赖的源文件 jars 包:

如果你希望获取到可用依赖的源文件包就 (这会要较长的时间, 可能一些源文件包根本找不到):

接着需要导入应用到你的项目中 (File->New Module->Import existing Module)

小贴士: 这里有一个关于构建基于 Java 的 Play2 应用的小 Bug Intellij IDEA issue, 是在已安装了 Scala 插件的情况下发生的. 在它未修复之前, 建议暂时禁用掉 Scala 插件.

要调试的话, 先得添加一个调试配置

  • 打开 Run/Debug Configurations 对话窗, 然后点 Run -> Edit Configurations
  • 添加一个 Remote 配置, 接着选择 Remote
  • 下面进行配置:
    • 设置名称
    • Transport: Socket
    • Debugger mode: Attach
    • Host: localhost
    • Port: 9999
    • 选择要导入的模块
  • 关闭对话窗 - 点 Apply

以调试模式启动 play:

它会打印:

设置断点. 通过执行任务 play 运行 Web 应用(再次提醒, 必须是在同一个终端中运行了 play debug 命令). 最后浏览 http://localhost:9000. IntelliJ 将会停在你的断点处.

如果你对应用作了重要的修改的话, 比如修改了 classpath, 需瑞次用 idea 来重新生成配置文件.

Netbeans

生成配置

Netbeans 当前还不存在原生 Play 项目. 所以目前你可以用  Netbeans SBT plugin 生成一个 Netbeans Scala 项目.

Unmi 注: Play 1.x 转换成 Netbeans 项目运行的命令是: play netbeansify

首先编辑 plugins.sbt 文件

然后运行

Unmi 注: Play 1.x 的指令系统用的是 Python 脚本, 而 Play 2 这些是基于 sbt 构建系统, Play 2 中不在依赖于 Python 了。从这方面讲,Play 2 更推崇用 Scala 了,自己就是个例子。在下载的 Play 1.x 解压后的目录中有 support, 里面有针对 eclipse, vim 和 zsh 的插件, 这个 eclipse 可以装来用,它提供了 routes 和 application.conf 的编辑器,其他功能可能没什么用。在下载的 Play 2 的目录中未包含 Eclipse 插件,大概它也不再推荐使用原来那个 Play Eclipse 插件了。

类别: PlayFramework. 标签: , , . 阅读(1,979). 订阅评论. TrackBack.

Leave a Reply

Be the First to Comment!

avatar
wpDiscuz