Play 2 的項目 ,現在已經可以打包war,並部署到Tomcat ,Jboss ,Jetty等等的web容器裏了。
這對於我們來說,是非常值得高興的。
原因?你懂的。
1. 在plugin.sbt中添加 Play2War 插件的支持。
Play2.1.X 添加如下代碼:
addSbtPlugin("com.github.play2war" % "play2-war-plugin" % "0.9")
Play2.0.X 添加如下代碼:
resolvers += "Play2war plugins release" at "http://repository-play-war.forge.cloudbees.com/release/" addSbtPlugin("com.github.play2war" % "play2-war-plugin" % "0.8.1")
2. 在 project/Build.scala 添加如下代碼:
import com.github.play2war.plugin._
3. 根據容器的情況,選取你要的版本值,再在Build.scala 中修改。
Servlet 3.0: Tomcat 7, JBoss 7, JBoss EAP 6, Glassfish 3, Jetty 8, ...
Servlet 2.5: Tomcat 6, JBoss AS 5/6, JBoss EAP 5, Glassfish 2, Jetty 7, ..
Play2.1.X 修改後的代碼:
val appVersion = "1.0-SNAPSHOT" ... val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA).settings( // ... Your own settings here Play2WarKeys.servletVersion := "3.0" ).settings(Play2WarPlugin.play2WarSettings: _*)
Play2.0.X 修改後的代碼:
val appVersion = "1.0-SNAPSHOT" ... val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA).settings( // ... Your own settings here Play2WarKeys.servletVersion := "2.5" ).settings(Play2WarPlugin.play2WarSettings: _*)
4. 新建文件APP_HOME/conf/logger.xml。內容如下:
<configuration> <conversionRule conversionWord="coloredLevel" converterClass="play.api.Logger$ColoredLevel" /> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%date - [%level] - from %logger in %thread %n%message%n%xException%n</pattern> </encoder> </appender> <logger name="play" level="INFO" /> <logger name="application" level="INFO" /> <!-- Off these ones as they are annoying, and anyway we manage configuration ourself --> <logger name="com.avaje.ebean.config.PropertyMapLoader" level="OFF" /> <logger name="com.avaje.ebeaninternal.server.core.XmlConfigLoader" level="OFF" /> <logger name="com.avaje.ebeaninternal.server.lib.BackgroundThread" level="OFF" /> <root level="ERROR"> <appender-ref ref="STDOUT" /> </root> </configuration>
5.輸入 play war。
以上操作無錯的話,會有 APP_HOME/target/<MY_PROJECT>-<YOUR_VERSION>.war 文件生成。
6.拷貝你的war包到容器即可。注意,改名字爲ROOT.war。
7.訪問方法:http://host:port/
PS: play2.1的項目,還可以支持發佈子目錄。不過要配置下。
方法:
在conf/application.conf裏添加如下:
application.context=/my-appName/
打包war就可以了。訪問方法:
http://host:port/my-appName/