Contrary to what many developers might assume, designing and building an application is only half the battle. When the application is finished, it must then be packaged and deployed into the target environment. Many applications are built and packaged with the intent of being installed into a customer's production environment. For others, the target deployment environment is in-house. For web applications, fortunately, the work that has to be accomplished in either case is very similar.
Internal deployments may be less formal and less nerve-racking. However, they still should be taken seriously and conducted in an efficient and professional manner. Whether the customer is a "real" customer or another department within the organization, an unprofessional deployment can leave a bad impression. Formalizing the packaging and deployment process allows developers to focus on building a quality application and spend less time worrying whether the application will install and run correctly when it's finished. In fact, the best time to establish a formal deployment process is in the beginning stages of development. By doing this earlier, rather than later in the development cycle, you will have an opportunity to test and fine tune the entire process.
This chapter discusses the best practices for packaging and deploying a Struts application, including coverage of what it takes to automate the build process for your environment. Special attention is given to Ant, the Java-based build tool available from Jakarta.