Maven is a build automation tool which is formulated to work primarily on Java projects. It focuses on two aspects of the software build process, describing both how software is built and its dependencies. Maven uses conventions for the build procedure, meaning that only exceptions have to be written down, which sets it apart from earlier tools like Apache Ant. It includes an XML file to describe the software project’s build, dependencies on external modules and components, build order, directories, and any required plugins. Compilation of code, its packaging, and other well-defined tasks are taken care of with pre-defined targets for performance. It mainly supports the inclusion of libraries used by the application from a shared location so that code’s physical sharing is easier because it’ll resolve all the repositories at the time of development.
Hudson (Now Jenkins)
Hudson is a continuous integration tool that is written in the Java programming language. Hudson runs in a servlet container, working well with the Apache Tomcat and Glassfish application servers. It is often used as an alternative to CruiseControl and similar open-source build servers. Jenkins is the current replacement for the now-defunct Hudson, supporting SCM tools including CVS, Git, Perforce, RTC, Clearcase, and Subversion. The tool can execute projects based on Apache Ant and Maven, as well as Window batch commands and arbitrary shell scripts.
Apache Ant originated as part of the Apache Tomcat project is used as build automation tool. The tool was created to replace the Unix Make build tool due to problems with Unix’s formulation. Ant is similar to Make although it uses the Java language and platform and is better suited for the building of Java projects overall.
CruiseControl functions as a Java-based framework for continuous build processes, including email notification plugins, Ant, and a variety of useful source control tools. You can use the web interface to view details of current and previous builds, making it easy to perform continuous integration across the software development process. It is free and open-source, distributed under a BSD-style license.