play2 的打包

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/




發佈了38 篇原創文章 · 獲贊 24 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章