概览
Play framwork 是我们一直在使用的框架,从刚开始的简单使用,乱起八糟的jar包引用,项目组成员之间的下载项目之后的引用问题等,遇到各种问题,我都一一解决,我将在这个系列中奉上解决方案。
项目打包,play 自带的是打包后为批处理,或者linux 的bash。但是有时候为了方便部署到tomcat,或者其他servlet容器,需要打包成war 包。
Play2war plugin 使用
Play2.2.2 本身是没有war命令的,需要一个插件来完成war 的打包。Github 地址是:https://github.com/play2war/play2-war-plugin。
配置
先新建一个项目
Play new testWar
APP_HOME 表示当前play 项目的目录。
添加 Play2War 插件, Play2war 与 play2 版本是兼容的, 但是play2.1 api 与 2.0 api 是不兼容的,所以根据你现在的play 版本选择正确的play2warplugin。 下边是对照表:
Play 2.0.x => Play2War 0.8.1 and earlier
Play 2.1.x => Play2War 1.0.x
Play 2.1.4+ => Play2War 1.1.x
Play 2.2.x => Play2War 1.2.x and later
然后在 APP_HOME/project/plugins.sbt: 添加如下信息:
//playplugin repostory
resolvers += "Play2war plugins release" at "http://repository-play-war.forge.cloudbees.com/release/"
//use play2war
addSbtPlugin("com.github.play2war" % "play2-war-plugin" % "1.2")
在 APP_HOME/build.sbt文件添加一行:
import com.github.play2war.plugin._
在build.sbt 中加入play2-war-plugin 的配置,我用部署到tomcat6 中,所以设置servletVersion 为2.5.
Play2WarPlugin.play2WarSettings
Play2WarKeys.servletVersion := "2.5"
配置Servlet 容器的版本对照:
Servlet 3.1: Tomcat 8, Wildfly 8, Glassfish 4, Jetty 9, ...
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, ...
还有一些其他的配置:https://github.com/play2war/play2-war-plugin/wiki/Play2War-configuration#build-configuration
使用:
直接使用 play war命令即可,打包之后保存在 APP_HOME/target/testwar-1.0-SNAPSHOT.war
部署到tomcat, 拷贝过去即可。