aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/maven/apache-maven-3.3.3/maven-core/src/site/apt/inheritance.apt
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/maven/apache-maven-3.3.3/maven-core/src/site/apt/inheritance.apt')
-rw-r--r--framework/src/maven/apache-maven-3.3.3/maven-core/src/site/apt/inheritance.apt100
1 files changed, 0 insertions, 100 deletions
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-core/src/site/apt/inheritance.apt b/framework/src/maven/apache-maven-3.3.3/maven-core/src/site/apt/inheritance.apt
deleted file mode 100644
index dbf0e2c2..00000000
--- a/framework/src/maven/apache-maven-3.3.3/maven-core/src/site/apt/inheritance.apt
+++ /dev/null
@@ -1,100 +0,0 @@
-~~ Licensed to the Apache Software Foundation (ASF) under one
-~~ or more contributor license agreements. See the NOTICE file
-~~ distributed with this work for additional information
-~~ regarding copyright ownership. The ASF licenses this file
-~~ to you under the Apache License, Version 2.0 (the
-~~ "License"); you may not use this file except in compliance
-~~ with the License. You may obtain a copy of the License at
-~~
-~~ http://www.apache.org/licenses/LICENSE-2.0
-~~
-~~ Unless required by applicable law or agreed to in writing,
-~~ software distributed under the License is distributed on an
-~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-~~ KIND, either express or implied. See the License for the
-~~ specific language governing permissions and limitations
-~~ under the License.
-
- -----
- Inheritance in Maven
- -----
- The Maven Team
- -----
-
-Inheritance in Maven
-
- In order the understand how inheritance works in Maven there are a few notions that you must be familiar with:
-
- * The maven super model
-
- * how parent poms are processed
-
- * the order in which elements in the POM are overridden
-
- * minimum element-set for a valid project pom
-
-
-Maven super model
-
- Inheritance is recursive in Maven but there is a special model which is the implicit super parent in the lineage
- of models you may specify:
-
- all of the models that you specify are collected to produce a lineage and then the super model is place at
- the top of that lineage to provide default values.
-
- The super model is where we place all the values which we believe to be standard, values that can be shared and
- utilized across all your maven projects.
-
-+-----+
- m0 <- m1 <- m2
-+-----+
-
- which is transformed into
-
-+-----+
- super model <- m0 <- m1 <- m2
-+-----+
-
-+-----+
-<project>
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId></groupId>
- <artifactId></artifactId>
- <version></version>
- </parent>
-</project>
-+-----+
-
-Extending the POM in the future
-
- In order to anticipate changes in the structure of the POM as new releases of
- maven occur, the maven inheritance model must be pinned against a particular
- modelVersion. This is required so that a change from modelVersion 4.0.0 to
- 4.1.0 doesn't cause compatibility problems with users who have not upgraded
- their projects. It also allows for a certain amount of legacy support into the
- future. Therefore, we should rename this file from pom.xml in the maven-core
- jarfile to pom-4.0.0.xml (and successive revisions to the base pom made to
- accommodate changes in the model will be named accordingly - 4.0.1, 4.0.2, ...).
-
-Minimum Element-Set for a Project POM
-
- In order to furnish a basic set of information which we need to distinguish one
- project from another, maven requires a minimum set of elements to be specified
- in each project's pom.xml.
-
- - [modelVersion] tells maven which version of the object model this project
- is compliant with (to support future legacy concerns)
-
- - [artifactId] tells maven what the artifact name is for this particular
- project. Each project should have a distinct artifactId.
-
- - [version] tells maven what release of this artifact we're trying to produce.
- The fact that a project has a distinct pom.xml should indicate a separate
- release cycle that is also distinct to that project, so a concrete version
- declaration is required.
-
- - [name] tells maven what the user-friendly name of this project is. The name
- element is similar to artifactId in that it is a unique descriptor for
- this and only this project, and therefore should be concretely defined.
-