Recently immersed in a huge garbage project can not extricate themselves, long time no update article. Let's take a brief look at the use of Maven in Eclipse today. The content of the article is almost a book of Maven for Eclipse, which is concise and practical.
First, Maven is a software project management and Program Understanding tool, in general, software project management includes planning, organization, management resource pool, the formation of resource assessment. To put it simply, MAVEN is a holistic approach to building infrastructure for the process of applying patterns, which mainly have the following objectives:
- Streamline the process of building a program
- Provides a unified build system
- Provide quality project information
- Provides the best practical guidance for the project
- Provides a transparent way to migrate new features
To achieve these goals, MAVEN provides a set of building standards, a artifact library model, an engine, a description project, and a standard lifecycle build, test, and deployment project artifacts.
The principle of 1.Maven
The main principles of Maven are the following:
-
- The contract is greater than the configuration. MAVEN defines the default project structure and builds a development life cycle to mitigate the development burden. Make the project easy to understand by specifying a model that is publicly defined.
- Declarative execution. MAVEN defines the life cycle of a project build, including a series of stages, which are composed of plugin goal. Plugin goal can include declaring a pom file to customize the execution of a project.
- Re-usability. MAVEN is built and reusable. Create and execute declarations you can use different projects in a project. MAVEN also makes it easy to create a build and consolidate it into multiple projects.
- A clear dependency relationship. MAVEN is responsible for managing dependencies, which reduces the burden on developers. Different conflict handling dependencies are handled well.
- Focus on program development. The standard project layout and build life cycle, do not need to develop the construction, mainly should focus on the project construction.
2.Maven Build Architecture
Maven is built from several different builds:
2.1 Plexus Container
Plexus is an ICO container that provides a component-oriented approach to building modules, and reusable builds can easily be used to assemble what is reused. It supports some of the following features.
-
-
-
- Component Life cycle
- Build consistency Policy
- nested containers
- Component Configuration
- Automatic weave in
- Component dependencies
- Many of the dependency injection techniques include constructor method injection, setter method injection, and private attribute injection.
For more information, please visit: http://plexus.codehaus.org/.
2.2 Wagon
Maven Wagon is a transfer abstraction used in MAVEN artifact and warehouse processing code. Wagon defines a unified API that currently has the following providers.
-
-
-
- File
- HTTP
- HTTP Lightweight
- Ftp
- Ssh/scp
- WebDAV
For more information, please visit: https://maven.apache.org/wagon/.
2.3 Maven Doxia
Doxia is a content generation framework that provides users with powerful technologies to generate static content and dynamic content. Doxia is also used for web-based publishing contexts to generate static Web sites and can also be incorporated into dynamic content generation systems such as blogs, wikis, and content management systems.
For more information, please visit: https://maven.apache.org/doxia/.
2.4 Modello
The Maodllo component is used in Maven to generate different types of artifact at build time based on a reference to a digital-model model.
-
-
-
- Java Pojo type of the data model
- Java POJO conversion to XML
- XML into Java POJO
- XDOC documentation for the data model
- XML Schema verifies that the XML content matches the data model
For more information, please visit: http://maven.apache.org/maven-1.x/plugins/modello/.
2.5 Maven SCM
This component provides a common API to perform source control operations, and the following types are supported by SCM.
-
-
-
- Bazaar
- Cvs
- Git
- Jazz
- Mercurial
- Perforce
- Starteam
- Subversion
- CM Energy
For more information, please visit: http://maven.apache.org/scm/.
Maven for Eclipse Chapter--maven Introduction