Correct way to deploy play framework app for prod systems

I have compiled my application with the following setting in application.conf file

# Application mode
# ~~~~~
# Set to dev to enable instant reloading and other development help.
# Otherwise set to prod.
application.mode=prod
%prod.application.mode=prod

      

Then I use cmd

play war myapp -o myapp --zip

      

Then deployed to release.

When I looked at tomcat / webapps / myapp / web-inf directory I see Java classes as well as configuration files from Netbeans (used by Netbeans as my IDE)

Is there a detailed description I should use when compiling and building a WAR file from a Prod system deployment?

+3


source to share


2 answers


Another option is to use a flag --exclude

that will not pack the folders you specify.

You can use it like:



play clean && play war --%prod --exclude folders:separated:by:colon -o myWar --zip

0


source


First of all, "playing war" will, as I understand it, precompile all your code, since Play cannot compile on the fly when deployed in a servlet container. So these should be the .class files included in the resulting .war.

Secondly, I suggest checking your projects in two different locations on your disk. One for developing using Netbeans (or any other IDE) and one for creating deployable devices. When you're ready for another release, make sure you commit (and "click" if you're using DSCM like GIT or HG). From the folder containing the "build" version of your project, pull all the changes from the SCM and build it from the command line. Never open a version of an assembly in your development environment, as it will add all sorts of files to your assembly.



Final hint: make sure all IDE dependent files are ignored by your SCM. For GIT add filename patterns to be ignored in the .gitignore file in your project root folder (HG: .hgignore, svn: use the svn: ignore property).

0


source







All Articles