1.what is Maven?
2014-04-26 10:09
267 查看
Introduction
Maven, a Yiddish word meaning accumulatorof knowledge, was originally started as an attempt to simplify the build processes in the Jakarta Turbine project. There were several projects each with their own Ant build files that were all slightly different and JARs were checked into CVS. We wanted
a standard way to build the projects, a clear definition of what the project consisted of, an easy way to publish project information and a way to share JARs across several projects.
The result is a tool that can now be used for
building and managing any Java-based project. We hope that we have created something that will make the day-to-day work of Java developers easier and generally help with the comprehension of any Java-based project.
Maven's Objectives
Maven's primary goal is to allow a developer to comprehend the complete state of a development effort in the shortest period of time. In order to attain this goal there are several areas of concern that Maven attempts to deal with:Making the build process easy
While using Maven doesn't eliminate(消除) the need to know about the underlying mechanisms, Maven does provide a lot of shielding from the details.
Providing a uniform build system
Maven allows a project to build using its
project object model (POM) and a set of plugins that are shared by all projects using Maven, providing a uniform build system. Once you familiarize yourself with how one Maven project builds you automatically know how all Maven projects
build saving you immense amounts (巨大的;浩瀚的)of time when trying to navigate many projects.
Providing quality project information
Maven provides plenty of useful project information that is in part taken from your POM and in part generated from your project's sources. For example, Maven can provide:
Change log document created directly from source control
Cross referenced sources
Mailing lists
Dependency list
Unit test reports including coverage
As Maven improves the information set provided will improve, all of which will be transparent to users of Maven.
Other products can also provide Maven plugins to allow their set of project information alongside some of the standard information given by Maven, all still based on the POM.
Providing guidelines for best practices development
Maven aims to gather current principles for best practices development, and make it easy to guide a project in that direction.
For example, specification, execution, and reporting of unit tests are part of the normal build cycle using Maven.
Current unit testing best practices were used as guidelines:
Keeping your test source code in a separate, but parallel source tree
Using test case naming conventions to locate and execute tests
Have test cases setup their environment and don't rely on customizing the build for test preparation.
Maven also aims to assist in project workflow such as release management and issue tracking.
Maven also suggests some guidelines on how to layout your project's directory structure so that once you learn the layout you can easily navigate any other project that uses Maven and the same defaults.
Allowing transparent migration(迁移) to new features
Maven provides an easy way for Maven clients to update their installations so that they can take advantage of any changes that been made to Maven itself.
Installation of new or updated plugins from third parties or Maven itself has been made trivial for this reason.
相关文章推荐
- what is maven?
- Maven by Example 1.1. Maven… What is it?
- what is maven?
- Maven... What is it?
- 1.1.1. What is Maven?
- C++ Design Pattern: What is a Design Pattern?
- What is the difference between GenericServlet, HttpServlet and a Servlet?
- Project configuration is not up-to-date with pom.xml. Select: Maven->Update Project... from the
- What Happens When A Tablespace/Database Is Kept In Begin Backup Mode (Doc ID 469950.1)
- SSH - what is the differnence between authorized_keys and authorized_keys2
- C++ Memory Management : What is the difference between malloc/free and new/delete?
- Exchange工具06—What is my ip
- What is "Data Locality"
- What is Split Brain in Oracle Clusterware and Real Application Cluster (文档 ID 1425586.1)
- maven项目导入出现Type Archive for required library: XXX.jar cannot be read or is not a valid ZIP file
- What is /proc/slabinfo?
- Spring security 介绍: what is spring security?
- The Linux Staging Tree, what it is and is not.
- What is the difference between Microsoft TMG and UAG ?
- What is SaaS and why you should you care? by Dennis Stevenson | May 12, 2009