aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/maven/apache-maven-3.3.3/maven-core/src/site/apt/configuration-management.apt
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/maven/apache-maven-3.3.3/maven-core/src/site/apt/configuration-management.apt')
-rw-r--r--framework/src/maven/apache-maven-3.3.3/maven-core/src/site/apt/configuration-management.apt139
1 files changed, 0 insertions, 139 deletions
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-core/src/site/apt/configuration-management.apt b/framework/src/maven/apache-maven-3.3.3/maven-core/src/site/apt/configuration-management.apt
deleted file mode 100644
index 4af0f0b1..00000000
--- a/framework/src/maven/apache-maven-3.3.3/maven-core/src/site/apt/configuration-management.apt
+++ /dev/null
@@ -1,139 +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.
-
- -----
- Maven configuration management
- -----
- The Maven Team
- -----
-
-Configuration levels in maven
-
- In maven configuration control happens on four differ levels: the site level, the group level,
- the project level, and the user level. On the site level you can configure maven for all users
- utilizing the local installation, the group level allows configuration management for all the projects
- that belong to the same group, the project level allows configuration management at
- the project level, and the user level allows users to override settings on
- the site level, group level and project level.
-
-* Site configuration
-
- At the site level all configuration is achieved by tweaking the the various files that
- are available in the ${maven.home}/site-configuration directory
-
-+-----+
-${maven.home}
- |
- +--- maven.properties
-+-----+
-
-* Group configuration
-
- As far as properties go for an entire build the maven.properties could be placed at
- the top of the group but I'm not really sure how this might work. There could probably
- also be a directory for plugins.xml and maven.properties.
-
-* Project configuration
-
- At the project level all configuration is achieved by tweaking the POM. One of the differences between
- maven 1.x and 2.x is that all project parameterization occurs in the POM and not from properties
- files.
-
- For many of the more advanced features in Maven2 it is critical that POMs be available in the local repository.
- Features like transitive dependencies and the new parent specification mechanism. The problem we run into is
- that currently we have information about a project scattered across the project.xml and the
- various properties files. What needs to be done is to encapsulate all of this in the POM.
-
- Typically users parameterize the use of plugins, or have custom values like ${user.name}
- for use in elements like the <developerConnection/>. It would be idea if we
- could encapsulate everything we need about the project in the POM including
- plugin parameters and anything else.
-
- We once had a document that Vincent and I agreed upon and I was about to
- implement it and then I disappeared for 8 months so it never came to pass.
-
- So I guess it's important to figure out what people are using propeties
- files for and see if we can't incorporate it all into the POM. Or if we do
- have properties file (something I would like to avoid) say they don't
- contribute in any meaningful way to information in the POM. For example a
- properties file could be used the specify $ so it can be interpolated in
- <developerConnection/> but you couldn't use a properties file to specify the
- version of your project say. Anyway, food for thought to begin with.
-
- - elements that are critical for pom dissemination
- - those that are used locally by the user like <developerConnection/>
-
-* User configuration
-
- User configuration which is utilized site wide are controlled with the ${user.home}/.m2/maven.properties.
-
- User configuration which is utilized at the project level are controlled with the
- ${project.home}/maven.properties file.
-
-Plugin configuration
-
- The configuration of plugins is of the same form as the maven {{{plugin-descriptors}plugin descriptors}}
- themselves:
-
-+-----+
-<plugins>
- <plugin>
- <id>xdoc</id>
- <version>1.0</version>
- <parameters>
- <parameter>
- <name>theme</name>
- <value>classic</value>
- </parameter>
- </parameters>
- </plugin>
-</plugins>
-+-----+
-
-Unified source directory
-
- Unified source directory structure that is analagous to the repository
- itself. This way locations of intermediary artifacts of a build would be
- in a known location. This would also help with developer setup i.e. getting
- new developers up and running. They could run a maven command and have all
- their source trees set up in the same way as their collegues.
-
- here's what I do currently in the netbeans part of the mevenide project to
- find the relevant subprojects/sibling projects. I check if the user has
- defined the maven.multiproject.includes property in any of his properties
- files for the current project. if yes. then I'm able to find projects that
- can be offered to be opened together with the current project.
- problems with the current solution are:
- 1. information is duplicate. once in POM's dependencies and once in the
- maven.multiproject.includes property.
- 2. it works without problems only for projects with relative paths, eg. from
- one CVS repository.. for projects from multiple SCM repositories it's harder
- to maintain the same relative links on all developer computers.
- not sure the unified source directory structure addresses this issue.
-
- Properties
-
- maven.user.config.dir (system,default=${user.home}/.m2)
- maven.home (system,user,default=${user.home}/m2)
- maven.repo.local (system,user,default=${maven.user.config.dir}/repository)
-
- We need to define what happens in the when things are not setup correctly
-
- o ~/.m2 directory does not exist
- o ~/.m2/maven.properties does not exist
- o if they once existed but now to do not exist
- o what the installer will take care of of what we can recover from