Working with WAR Files
Creating WAR files is actually accomplished in the same way you create JAR files:
through the jar
command. The command-line interface to
jar
, and even the program's name, is based on the Unix
tar
command (TAR was originally the Tape ARchiver,
though it's now used far more often to archive files for transfer over the Internet than to
tape[19]). The normal usage pattern to create an archive is:
$ jar cvfjar-file
.jar
dir [...]
The c says you want to create an archive. The v is optional; it says you want a verbose listing as it goes. The f is required, and says that the argument following the letters (c, v, f . . .) is an output filename. The next and all subsequent filename arguments are input names, and can be files or directories. Directories are archived recursively. So, assuming you have your web application set up correctly and completely in a directory called my-webapp, you could do the following:
$ cd ~/my-webapp $ jar cvf ~/my-webapp.war .
Or on Windows, you could do:
C:\> cd c:\myhome\my-webapp C:\myhome\my-webapp> jar cvf c:\temp\my-webapp.war .
That little dot (.
) at the end is important; it means
"archive the contents of the current directory." Notice also that although it is a JAR file,
we called it a WAR to indicate that it contains a complete web application; this is
recommended in the servlet specification. Once you've issued the command, you should see
output similar to the following:
added manifest adding: WEB-INF/(in = 0) (out= 0)(stored 0%) adding: ...
Get Tomcat: The Definitive Guide, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.