ITWissen.info - Tech know how online

Maven

Maven is a project of the ApacheSoftware Foundation for the configuration management of software and specifically designates with Maven 2 a build management tool. Maven 2 is fully implemented in Java and is currently available in version 2.2.1 at the link below. The objective of Maven 2 is to create and manage Java programs in a standardized way, and to map the individual cycles of software development. The scope of functionality in Maven 2 is broader than that of comparable products such as Ant. A completely revised and clearly extended version is to be available shortly with Maven 3.

From the point of view of configuration management, it is essential that the steps for creating a software product are repeatable and reproducible at any time, so that the same product can always be created. The increase in productivity achieved through so-called project automation is another positive side effect. The goals mentioned can be realized by a build process. Its concrete implementation is highly project-specific and important influencing factors are, for example, the technology used, such as Java, . NET, etc., as well as the complexity of the product created.

This is exactly where Maven comes in and - based on the principle of "Convention over Configuration" - maps the entire software development cycle. Maven 2 thus goes a step further than the equally popular product Ant(Another Neat Tool) by additionally creating documentation, a detailed analysis and tests for the entire build process. The software developer is to be supported from the creation of a software project over the compiling, testing, packing up to the distribution of the software on the appropriate target systems so detailed that the individual steps and their interaction run automatically. In addition, Maven generates a range of documentation and reports in various formats. With plug-ins, Maven can be extended as desired. Maven thus applies the build process more comprehensively and thus generalizes the process of development more than Ant, for example. Like Ant, however, Maven is also command- line oriented. The Open Source Competence Group (OSCG) provides its own distribution for Maven. For integration into a comfortable development environment, an extension forEclipse is available in the form of the M2eclipse plug-in

Model-based, declarative approach for model implementation

Maven uses a model-based, declarative approach to implement a build process. Following Maven's standards, most build management tasks require very few configuration settings to map the lifecycle of a software project. For this purpose, long scripts do not have to be created as is often the case; the metadata of the project is compiled in a so-called project model (POM). This is, for example, information about the external libraries required or the project structure used. In addition to the definition organizes the management of Maven repositories. This is a directory structure defined according to certain specifications with additional management information in the form of XML files. Based on the project model, the build process is performed and exactly one file is created for delivery at a time. Maven can then make this file available to other projects in the local or also in a remote repository, which is particularly advantageous for complex, distributed projects.

In the context of Maven, the following terms are used specifically:

  • Goal is used to refer to Maven's smallest unit of execution,
  • the lifecycle phase combines multiple Goals, and
  • lifecycle describes an ordered sequence of the lifecycle phase.

The documentation of a project takes an important role in the philosophy of Maven. Extensive support for the creation of a specific project homepage is also offered.

With the Polyglot Maven project, the path to a Maven 3 version is currently being taken. A first preview can be examined under the link below. The goal of this project is, among other things, to generate a higher flexibility of the Maven 3.0 core. It should be possible to pull POM information from data sources and to enable Domain Specific Languages( DSL) to use the core functionalities available in Maven 3. Groovy, Clojure, Ruby and Scala, among others, are to be supported; among the markup languages, it is to be only YAML in a first version. Thus the Maven POM must be no longer only XML. The transformation of a POM is also supported - for example, pom.xml to pom.scala. In addition, the simplification and reduction of modules as well as the simplification of the artifact resolution are planned. An interesting enhancement is the integration of a performance framework. With all changes and modifications, Maven 3 should be 100% backward compatible with Maven 2.x. In addition, another detail is an improved integration into an extensible development environment such as Eclipse. The M2Eclipse plug-in then no longer has to go through the complete build lifecycle.

Informations:
Englisch: Maven
Updated at: 28.10.2013
#Words: 774
Links: project, configuration management (CM), software (SW), tool, Java
Translations: DE
Sharing:    

All rights reserved DATACOM Buchverlag GmbH © 2024