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/