Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>I'm firmly against building on the production box, because it means you're using a different build than you tested with. It also means every deployment machine has a different JAR/WAR file. If nothing else, do a unified build just so that when bug tracking you won't have to worry about inconsistencies between servers.</p> <p>Also, you don't need to put the builds into version control if you can easily map between a build and the source that created it.</p> <p>Where I work, our deployment process is as follows. (This is on Linux, with Tomcat.)</p> <ol> <li><p>Test changes and check into Subversion. (Not necessarily in that order; we don't require that committed code is tested. I'm the only full-time developer, so the SVN tree is essentially my development branch. Your mileage may vary.)</p></li> <li><p>Copy the JAR/WAR files to a production server in a shared directory named after the Subversion revision number. The web servers only have read access.</p></li> <li><p>The deployment directory contains relative symlinks to the files in the revision-named directories. That way, a directory listing will always show you what version of the source code produced the running version. When deploying, we update a log file which is little more than a directory listing. That makes roll-backs easy. (One gotcha, though; Tomcat checks for new WAR files by the modify date of the real file, not the symlink, so we have to touch the old file when rolling back.)</p></li> </ol> <p>Our web servers unpack the WAR files onto a local directory. The approach is scalable, since the WAR files are on a single file server; we could have an unlimited number of web servers and only do a single deployment.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload