play框架2.5.6教程——设置你喜欢的IDE

来源:互联网 发布:武力统一台湾后果知乎 编辑:程序博客网 时间:2024/06/05 17:00

用Play操作很简单,你甚至不需要一个复杂的IDE,因为Play会自动地编译和更新你对你的资源所做的修改。所以你可以使用一个简单的文本编辑器进行操作。


然而使用一个现代的Java或者Scala IDE 可以提供很酷,具有创造力的功能,比如自动实现,运行编译,辅助重构和调试。


Eclipse

设置sbteclipse

Eclipse的集成需要sbteclipse4.0.0版本或者更新。

addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "4.0.0")
在运行eclipse命令之前,你必须先编译你的项目,当eclipse命令通过增加下面的设置来运行,你就可以强制项目编译

// Compile the project before generating Eclipse files, so that generated .scala or .class files for views and routes are presentEclipseKeys.preTasks := Seq(compile in Compile)
如果你的项目里面有Scala资源,你就需要安装Scala IDE

如果你不想安装Scala IDE并且你的项目里只有Java资源,你就可以按照下面的设置:

EclipseKeys.projectFlavor := EclipseProjectFlavor.Java           // Java project. Don't expect Scala IDEEclipseKeys.createSrc := EclipseCreateSrc.ValueSet(EclipseCreateSrc.ManagedClasses, EclipseCreateSrc.ManagedResources)  // Use .class files instead of generated .scala files for views and routes

生成配置文件

Play提供一条命令来简化Eclipse的配置,使用下面的命令来将一个Play应用转化成正在工作的eclipse项目。

[my-first-app] $ eclipse
如果你想要获取有效的资源jar包(这将会花很长时间并且可能会丢失一些资源)

[my-first-app] $ eclipse with-source=true
如果你正在使用集合中的一个子项目,你需要在build.sbt中正确地设置skipParents

EclipseKeys.skipParents in ThisBuild := false

或者在Play控制台中输入:

[my-first-app] $ eclipse skip-parents=false
然后在File/Import/General/Existing project...menu(首先要编译你的项目)工作空间中加入应用:



用activator-jvm-debug 9999 run调试,开始你的项目,在eclipse中右击项目名称,然后选择Debug As,Debug Configuratiojns.在Debug Configurations对话框中,右击Remote Java Application,选择New,将端口改成9999,并点击Apply,现在你可以点击Debug来连接正在运行的应用。停止调试会话不会停止服务器。


技巧:你可以使用~run来运行你的应用,当文件改变的时候可以直接编译。用这种方法,当你在view中创建一个新的模板,Scala模板文件将会被自动发现,并且当这个文件改变的时候会自动编译。如果你使用普通的run,你必须每次都要刷新浏览器。


如果你对你的应用做了很重要的改变,比如改变了classpath,需要再一次使用eclipse来重新生成配置文件。


技巧:当你在一个团队中工作时不要提交Eclipse的配置文件!


生成的配置文件包含安装framework的完整信息。这是你自己安装所独有的。当你在一个团队中工作时,每一位开发人员必须要保证他的Eclipse配置文件隐私。


IntelliJ

Intellij IDEA 让你很快地新建一个Play应用而不需要命令行的指示。你不需要在IDE的外部配置任何东西,SBT build工具将会小心地下载合适的libraries,解析相关性并建立项目。

在你开始在IntelliJ  IDEA新建一个Play应用之前,要确保安装了最新的Scala Plugin并且可以在Intellij IDEA使用。即使你不在Scala里开发,它也可以帮助模板引擎,同时解析相关性。


创建一个Play应用:

1.打开项目向导,选择Import Project

2.在打开的窗口中,选择一个你想要添加的项目,然后点击OK

3.在向导的下一页,选择Import project from external model选项,选择SBT project,然后点击next。

4.在向导的下一页,选择additional import options,然后点击finish。


检查项目的结构,确保所有必要的依赖文件都下载了,你可以使用code assistance,navigation 和on-the-fly code来分析结构。


你可以运行新建的应用,并且在默认的浏览器中http://localhost:9000查看结果。运行一个Play应用:

1.创建一个新的Run配置-在主菜单里,选择Run-Edit-Configurations

2.点击+来增加一个新的配置。

3.在一系列的配置中,选择“SBT Task”

4.在“task”输入框里,简单地输入“run”

5.应用修改,并且选择OK

6.现在你可以在主菜单中选择“Run”来运行你的应用


你可以使用默认的Run/Debug配置设置来为Play应用开始一个调试会话。


如果你想要了解更详细的信息,可以在下面的网址中看Play Framwork 2.x教程

https://www.jetbrains.com/idea/help/getting-started-with-play-2-x.html


源代码错误页面的提示

使用play.editor配置选项,你可以建立Play来增加一个错误页面的超链接,这将会联系到运行时报错,当Play在开发模式中运行时。


笔记:Play只能显示运行时的错误,编译错误(甚至涉及Twirl 模板或路由)不能在错误页面中显示


你可以通过安装Remote Call IntelliJ plugin很简单地从错误页面中了解清楚并直接进入IntelliJ的源代码中


用下面的选择来安装Remote Call IntelliJ plugin并且运行你的app:

-Dplay.editor=http://localhost:63342/api/file/?file=%s&line=%s -Dapplication.mode=dev


NetBeans

生成配置文件

目前Play没有自带的NetBeans项目支持,但是NetBeans有一个Scala插件可以辅助Scala语言和SBT:

https://github.com/dcaoyuan/nbscala

也有另外一个SBT插件可以新建NetBeans项目的定义

https://github.com/dcaoyuan/nbsbt


ENSIME

安装ENSIME

按照说明来安装: https://github.com/ensime/ensime-emacs


生成配置文件

编辑project?plugins.sbt文件,并增加下面一行(你应该先在https://github.com/ensime/ensime-sbt检查插件的最新版本):

addSbtPlugin("org.ensime" % "ensime-sbt" % "0.2.3")
启动Play:

$ activator
在play控制台中输入‘gen-ensime’.该插件会在你的Play项目的根文件中生成一个a.ensime文件

[MYPROJECT] $ gen-ensime[info] Gathering project information...[info] Processing project: ProjectRef(file:/Users/aemon/projects/www/MYPROJECT/,MYPROJECT)...[info]  Reading setting: name...[info]  Reading setting: organization...[info]  Reading setting: version...[info]  Reading setting: scala-version...[info]  Reading setting: module-name...[info]  Evaluating task: project-dependencies...[info]  Evaluating task: unmanaged-classpath...[info]  Evaluating task: managed-classpath...[info] Updating {file:/Users/aemon/projects/www/MYPROJECT/}MYPROJECT...[info] Done updating.[info]  Evaluating task: internal-dependency-classpath...[info]  Evaluating task: unmanaged-classpath...[info]  Evaluating task: managed-classpath...[info]  Evaluating task: internal-dependency-classpath...[info] Compiling 5 Scala sources and 1 Java source to /Users/aemon/projects/www/MYPROJECT/target/scala-2.9.1/classes...[info]  Evaluating task: exported-products...[info]  Evaluating task: unmanaged-classpath...[info]  Evaluating task: managed-classpath...[info]  Evaluating task: internal-dependency-classpath...[info]  Evaluating task: exported-products...[info]  Reading setting: source-directories...[info]  Reading setting: source-directories...[info]  Reading setting: class-directory...[info]  Reading setting: class-directory...[info]  Reading setting: ensime-config...[info] Wrote configuration to .ensime
启动ENSIME

在编辑器中,执行M-x ensime并按照下面的说明。

你要做的就是这些。你现在应该检查你的play项目的类型检查,完备性等。注意:如果你在你的play项目中增加了新的库依赖,您应该重新运行“gen-ensime”并重新启动ENSIME。


更多相关信息

 https://github.com/ensime/ensime-emacs中检查ENSIME README。如果你有任何问题,可以在https://groups.google.com/forum/?fromgroups=#!forum/ensime。 中的ensime组提出。


所有的Scala插件

1.Eclipse Scala IDE: http://scala-ide.org/

2.NetBeans Scala 插件: https://github.com/dcaoyuan/nbscala

3.IntelliJ IDEA Scala插件:http://blog.jetbrains.com/scala/

4.Emacs的ENSIME-Scala IDE: https://github.com/aemoncannon/ensime




































0 0
原创粉丝点击