版本-Maven插件基础知识
版本Maven插件是maven项目中的一个插件,用于更新项目的应用程序/工件的版本。
每个工件都是一个单独的模块,与其他工件有依赖关系。最新的版本总是稳定的,并且修复了错误。这样做的好处是可以检查依赖的最新版本,以及父级依赖。
对于开发者来说,保持和管理这个版本是一个繁琐的任务。这个插件可以自动管理应用程序中的依赖关系的版本。
它可以生成一个项目的报告,其中包含所有没有使用最新版本的依赖关系。
这在你的项目的发布管理中是非常有帮助的。
有不同的目标可用于报告以下事项
- 检查插件的最新版本
- 检查工件依赖的版本更新
- 用新的版本更新工件和依赖的版本
- 将属性版本更新为最新版本。
- 用最新的版本检查父级依赖关系
- 检查快照版本并与发布版本更新
- 更新下一个快照和发布版本
将版本插件添加到pom.xml中
在工件pom.xml中,像下面这样在插件部分添加这个插件。你需要提供这个插件的groupid、artifactId和版本。这就是使用版本插件的方法
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>${maven.versions.plugin}</version>
</plugin>
</plugins>
</build>
检查maven项目的依赖版本。
在这个演示工件中,JUnit的依赖版本为3.8.1。使用这个版本插件来检查依赖版本,更新pom.xml。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.cloudhadoop</groupId>
<artifactId>demo</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>app</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.versions.plugin>2.5</maven.versions.plugin>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.10</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>${maven.versions.plugin}</version>
</plugin>
</plugins>
</build>
</project>
以下是一个在项目根目录下运行的maven命令。
mvn versions:display-dependency-updates
该命令检查来自中央的远程仓库的更新,并显示新旧版本。
[INFO] artifact junit:junit: checking for updates from central
[INFO] The following dependencies in Dependencies have newer versions:
[INFO] junit:junit ............................................ 3.8.1 -> 4.12
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
这个目标是检查插件及其依赖关系的最新版本,并将报告显示在控制台。以下是输出控制台日志的样本
[INFO] Require Maven 3.0 to use the following plugin updates:
[INFO] maven-clean-plugin ............................................ 3.1.0
[INFO] maven-compiler-plugin ......................................... 3.8.0
[INFO] maven-jar-plugin .............................................. 3.1.0
[INFO] maven-resources-plugin ........................................ 3.1.0
[INFO] org.codehaus.mojo:versions-maven-plugin ......................... 2.5
这个目标给出了需要更新到最新版本或不需要的版本属性报告
[INFO] --- versions-maven-plugin:2.5:display-property-updates (default-cli) @ demo ---
[INFO] Major version changes allowed
[INFO]
[INFO] The following version properties are referencing the newest available version:
[INFO] ${maven.versions.plugin} ........................................ 2.5
[INFO] All version properties are referencing the newest version available.
[INFO]
[INFO] ------------------------------------------------------------------------
versions:set goal
这个目标是将工件的版本更新到新的版本。你需要通过命令行输入,在pom.xml中会更新新的版本信息
b:\maven-release-plugin>mvn versions:set
INFO] Scanning for projects...
INFO]
INFO] ------------------------------------------------------------------------
INFO] Building app 1.0-SNAPSHOT
INFO] ------------------------------------------------------------------------
INFO]
INFO] --- versions-maven-plugin:2.5:set (default-cli) @ demo ---
nter the new version to set 1.0-SNAPSHOT: : 1.0.1
INFO] Searching for local aggregator root...
INFO] Local aggregation root: B:\maven-release-plugin
INFO] Processing change of com.cloudhadoop:demo:1.0-SNAPSHOT -> 1.0.1
INFO] Processing com.cloudhadoop:demo
INFO] Updating project com.cloudhadoop:demo
INFO] from version 1.0-SNAPSHOT to 1.0.1
INFO]
INFO] ------------------------------------------------------------------------
INFO] BUILD SUCCESS
versions:use-latest-versionsgoal
这个目标是检查工件与中央仓库的依赖关系并替换为最新版本。
修改pom.xml的目标
以下是一些可用来修改项目的pom.xml文件的目标。
mvn versions:commit : 这个目标是恢复git/svn仓库对pom.xml所做的修改 。
mvn versions:update-parent : 这个目标是用新版本更新父版本的pom。
以上就是关于版本Maven插件的全部内容。