通过实例了解各版本的maven插件基础知识

722 阅读3分钟

版本-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插件的全部内容。