-
Notifications
You must be signed in to change notification settings - Fork 268
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
#725 Migrating "Advancing dependency versions" to Markdown
- Loading branch information
1 parent
3e1278d
commit 021e437
Showing
2 changed files
with
144 additions
and
167 deletions.
There are no files selected for viewing
167 changes: 0 additions & 167 deletions
167
src/site/apt/examples/advancing-dependency-versions.apt.vm
This file was deleted.
Oops, something went wrong.
144 changes: 144 additions & 0 deletions
144
src/site/markdown/examples/advancing-dependency-versions.md.vm
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,144 @@ | ||
title: Advancing dependency versions | ||
autor: Stephen Connolly | ||
date: 2009-08-12 | ||
|
||
<!--- | ||
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 | ||
https://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. | ||
--> | ||
|
||
Advancing dependency versions | ||
============================= | ||
|
||
There are a number of goals which can be used to advance dependency versions: | ||
|
||
- [versions:use-next-releases](../use-next-releases-mojo.html) searches the pom for all non-SNAPSHOT versions which | ||
have been a newer release and replaces them with the next release version. | ||
- [versions:use-latest-releases](../use-latest-releases-mojo.html) searches the pom for all non-SNAPSHOT versions | ||
which have been a newer release and replaces them with the latest release version. | ||
- [versions:use-next-snapshots](../use-next-snapshots-mojo.html) searches the pom for all non-SNAPSHOT versions | ||
which have been a newer -SNAPSHOT version and replaces them with the next -SNAPSHOT version. | ||
- [versions:use-latest-snapshots](../use-latest-snapshots-mojo.html) searches the pom for all non-SNAPSHOT versions | ||
which have been a newer -SNAPSHOT version and replaces them with the latest -SNAPSHOT version. | ||
- [versions:use-next-versions](../use-next-versions-mojo.html) searches the pom for all versions which | ||
have been a newer version and replaces them with the next version. | ||
[versions:use-latest-versions](../use-latest-versions-mojo.html) searches the pom for all versions which | ||
have been a newer version and replaces them with the latest version. | ||
|
||
All of these goals share a common set of parameters. | ||
|
||
Deciding which goal to use | ||
-------------------------- | ||
|
||
The following matrix should help decide which goal(s) to use: | ||
|
||
| Goal | Modifies Release dependencies | Modifies -SNAPSHOT dependencies | Considers releases | Considers -SNAPSHOTs | Picks Next | Picks Latest | | ||
|----------------------|:-----------------------------:|:-------------------------------:|:------------------:|:------------------------:|:----------:|:------------:| | ||
| use-next-releases | | Yes | Yes | | Yes | | | ||
| use-latest-releases | | Yes | Yes | | | Yes | | ||
| use-next-snapshots | Yes | | | Yes | Yes | | | ||
| use-latest-snapshots | Yes | | | Yes | | Yes | | ||
| use-next-versions | Yes | Yes | Yes | If -DallowSnapshots=true | Yes | | | ||
| use-latest-versions | Yes | Yes | Yes | If -DallowSnapshots=true | | Yes | | ||
|
||
The columns in the above goal matrix are as follows: | ||
|
||
- *Modified Release dependencies* when scanning the `pom.xml` for dependency to update, include those dependencies which | ||
are for release versions (i.e. non-SNAPSHOT versions). | ||
- *Modified -SNAPSHOT dependencies* when scanning the `pom.xml` for dependency to update, include those dependencies which | ||
are for -SNAPSHOT versions. | ||
- *Considers releases* when building the list of newer versions of a dependency, include release versions (i.e. non-SNAPSHOT | ||
versions) in the list. | ||
- *Considers releases* when building the list of newer versions of a dependency, include -SNAPSHOT versions in the list. | ||
- *Picks Next* when the list of newer versions is sorted in increasing order, pick the first newer version in the list, i.e. | ||
the oldest newer version available, also known as the "next" version. | ||
- *Picks Latest* when the list of newer versions is sorted in increasing order, pick the last newer version in the list, i.e. | ||
the newest version available, also known as the "latest" version. | ||
|
||
Controlling which dependencies are processed | ||
-------------------------------------------- | ||
|
||
You can restrict which dependencies should be processed. For example, | ||
the following will only match dependencies that match the groupId "org.codehaus.plexus" and artifactId | ||
"plexus-utils" | ||
|
||
```sh | ||
mvn versions:use-next-releases -Dincludes=org.codehaus.plexus:plexus-utils | ||
``` | ||
|
||
The `includes` and `excludes` parameters follow the format `groupId:artifactId:type:classifier`. | ||
Use a comma separated separated list to specify multiple includes. Wildcards (\*) can also be used to match | ||
multiple values. | ||
|
||
This example will match anything with the groupId "org.codehaus.plexus" and anything with the groupId and | ||
artifactId matching "junit". | ||
|
||
```sh | ||
mvn versions:use-next-releases -Dincludes=org.codehaus.plexus:*,junit:junit | ||
``` | ||
|
||
You can pre-configure defaults for `includes` and `excludes` in your `pom.xml` if there is a specific | ||
set of dependencies that you need to track on a regular basis, e.g. | ||
|
||
```xml | ||
<project> | ||
... | ||
<build> | ||
... | ||
<plugins> | ||
... | ||
<plugin> | ||
<groupId>org.codehaus.mojo</groupId> | ||
<artifactId>versions-maven-plugin</artifactId> | ||
<version>${pluginVersion}</version> | ||
<configuration> | ||
... | ||
<includes> | ||
<include>org.codehaus.plexus:*</include> | ||
<include>junit:junit</include> | ||
</includes> | ||
... | ||
<excludes> | ||
<exclude>org.codehaus.plexus:plexus-utils</exclude> | ||
</excludes> | ||
... | ||
</configuration> | ||
</plugin> | ||
... | ||
</plugins> | ||
... | ||
</build> | ||
... | ||
</project> | ||
``` | ||
|
||
By default, both the `project/dependencyManagment` and `project/dependencies` sections will be processed. | ||
You can use the `processDependencies` and `processDependencyManagement` parameters to control which sections | ||
are processed. | ||
|
||
This example will only process the `project/dependencyManagment` section of your pom: | ||
|
||
```sh | ||
mvn versions:use-next-releases -DprocessDependencies=false | ||
``` | ||
|
||
While this example will only process the `project/dependencies` section of your pom: | ||
|
||
```sh | ||
mvn versions:use-next-releases -DprocessDependencyManagement=false | ||
``` | ||
|
||
|
||
|