【问题标题】:Get version of specific module in multi module maven project获取多模块maven项目中特定模块的版本
【发布时间】:2021-02-25 02:04:44
【问题描述】:

我有一个多 Maven 模块项目。我需要检索模块的当前版本。

Parent Pom (2.4.0)
|- module1 1.5.0
|- module2 1.3.4
|- module3 1.2.5

获取module2 的版本将返回1.3.4

仅供参考:module1 可能是 module2 的依赖项。

找到一种方法是

mvn depedency:tree -X |  awk '/module1/ {split($0, a, ":"); if (a[4]) {print a[4]; exit}}'

更喜欢更清洁的方式。

【问题讨论】:

    标签: maven maven-3 multi-module


    【解决方案1】:

    有几种解决方案,但它们都基于相同的逻辑:

    mvn -f model2 org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=project.version -q -DforceStdout

    使用-f model2-f model2/pom.xml 指定 pom.xml 的路径

    使用org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate,您可以调用maven-help-plugin 的evaluate goal。如果 pom 在这个插件上已经有一个锁定版本,你可以简单地使用help:evaluate

    使用-Dexpression=project.version,您可以指定您想知道的内容。如果它以项目开头,那么您将遵循 pom 的 xml 结构。

    使用-q,您可以抑制由 Maven 的日志框架处理的输出日志。

    但这也会抑制评估目标的结果。因此,通过使用-DforceStdout,结果将是可见的,因为它绕过了日志框架。

    【讨论】:

    猜你喜欢
    • 2011-08-09
    • 1970-01-01
    • 2013-04-04
    • 1970-01-01
    • 2011-05-21
    • 1970-01-01
    • 2016-09-24
    • 2011-05-01
    • 2016-01-10
    相关资源
    最近更新 更多