可继承的版本 Maven 插件规则

2024-01-21

跑步时mvn versions:display-dependency-updates为了版本 Maven 插件 https://www.mojohaus.org/versions-maven-plugin/我看到很多这样的事情:

[INFO]   org.slf4j:slf4j-api ........................... 1.7.36 -> 2.0.0-alpha7

但仅仅因为我没有使用更高版本的 alpha 版本并不意味着我没有使用最新的可用发行版本。其他堆栈溢出答案 https://stackoverflow.com/a/48715568/表明我可以设置一个rules.xml文件忽略版本如*.-alpha*,在我的 POM 中添加这样的内容:

<configuration>
  <rulesUri>file:///${project.basedir}/rules.xml</rulesUri>
</configuration>

我的问题:是这个吗rules.xml文件可继承吗?如果我将它放在父 POM 中的单独项目中<packaging>pom</packaging>,发布到 Maven Central,子 POM 会选择它吗?或者子项目会寻找rules.xml file 在子项目目录中?

我想配置versions-maven-plugin在父 POM 中(就像我已经做的那样)并运行mvn versions:display-dependency-updates在任何子 POM 或后代 POM 上。如何在父 POM 中设置忽略规则,以便在检查子 POM 中的依赖项更新时选择这些版本忽略规则? (有没有办法将规则包含在 POM 本身中?)


或者子项目是否会在子项目目录中查找rules.xml 文件?

是的,如果您定义rules.xml文件通过${project.basedir}它将解析为子项目的当前本地基目录。我已经通过简单的父子 pom 设置验证了这一点。因此,除非您在每个项目中复制规则文件,否则这是行不通的。

如果您想包含插件配置and如果您想在父 pom 中设置规则集而不复制规则文件,您有两种选择:

例如,如果您的规则集 xml 文件托管在:http://www.mycompany.com/maven-version-rules.xml http://www.mycompany.com/maven-version-rules.xml那么您公司 pom 中的以下配置将确保所有项目都使用此规则集。

<configuration>
    <rulesUri>http://www.mycompany.com/maven-version-rules.xml</rulesUri>
</configuration>

or

如果您想将规则集 xml 作为 Maven 工件分发,您也可以在 jar 中提供规则集 xml 文件。因此,您必须将包含的 jar 声明为 versions-maven-plugin 的直接依赖项,并使用类路径作为协议。

<configuration>
  <rulesUri>classpath:///package/foo/bar/rules.xml</rulesUri>
</configuration>
<dependencies>
    <dependency>
        <groupId>com.mycompany</groupId>
        <artifactId>version-rules</artifactId>
        <version>1.0</version>
    </dependency>
</dependencies>

Source:

  • https://www.mojohaus.org/versions-maven-plugin/version-rules.html https://www.mojohaus.org/versions-maven-plugin/version-rules.html

pom中的配置只有简陋includes and excludes过滤器。这些将允许您从整体上排除任何依赖项,但不能排除特定的更新版本。据我从可用的文档中可以看出,没有办法以任何其他方式定义版本规则。

See

  • https://www.mojohaus.org/versions-maven-plugin/examples/advancing-dependency-versions.html https://www.mojohaus.org/versions-maven-plugin/examples/advancing-dependency-versions.html

更新 09-2022

In the github 票证 https://github.com/mojohaus/versions-maven-plugin/issues/258我们在评论中发现可以看到以下更新:

看起来像这样的功能最近已经实现了#369 https://github.com/mojohaus/versions-maven-plugin/pull/369。请参见#318 https://github.com/mojohaus/versions-maven-plugin/issues/318可以提供包含和排除过滤器来确定将考虑哪些依赖模式。因此,您可以排除诸如以下的模式:.*-beta. or .*_ALPHA,虽然不使用正则表达式,但使用简单的星号通配符。

这将在今天的版本 (2.12.0) 中发布。

这将添加以下功能:

2.12.0版本将引入新的参数:dependencyIncluded, dependencyExcludes, dependencyManagementIncludes, dependencyManagementExcludes.

使用以下示例配置pom.xml given:

<profile>
  <id>display-dependency-updates</id>
  <build>
    <plugins>
      <plugin>
        <groupId>${project.groupId}</groupId>
        <artifactId>${project.artifactId}</artifactId>
        <version>${project.version}</version>
        <executions>
          <execution>
            <phase>validate</phase>
            <goals>
              <goal>display-dependency-updates</goal>
            </goals>
            <configuration>
              <dependencyIncludes>org.apache.maven.*:doxia*</dependencyIncludes>
              <dependencyManagementIncludes>com.puppy*:*</dependencyManagementIncludes>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</profile>

这也将用于过滤plugin and pluginManagement,但这可能会在以后的版本中添加:

因此,我刚刚添加了缺少的插件和插件管理过滤,其工作原理类似。不过,我真的怀疑它是否会出现在今天的版本中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

可继承的版本 Maven 插件规则 的相关文章

随机推荐

  • 将列转置为行 oracle

    我有一个以这种形式返回的查询值 查询返回超过 50 列 1 99transval 100 200transval 200 300transval 1 99nontransval 100 50 90 80 67 58 对于行值 我希望将这些详
  • 从查询字符串中的令牌授权 AWS API Gateway 请求

    我已经使用 Cognito 授权者设置了 API 网关 该授权者可以使用标头中的 id 令牌正确授权任何请求 当请求基于 XHR 时这很好 因为我可以在准备请求时添加标头 但是我在使用时无法添加这个
  • 显示多个图像动画

    我想显示一个背景图像和多个向下移动的图像 就像 降雪 场景一样 我该怎么做 背景图像不应该移动 只有它上面的小图像应该掉落 我该怎么做 更新 gt 我已在屏幕上显示图像 但它们都是同时出现的 但我想显示在不同时间出现的图像 我该怎么做 嘿
  • 如何将数据库从 SQL Server 2005 迁移到 2008?

    我想完全或部分迁移数据库 现在我要做一个完整的数据库 部分将作为单独的问题发布 我正在考虑的策略 复制数据库向导 将 2005 数据库转换为脚本 在 2008 年运行脚本 简单的SQL查询 我的问题 我想使用方法 2 是否可以这样做 如果是
  • 使用 Rcpp 将循环从 R 转换为 C++

    我想使用 Rcpp 提高一些 R 代码的速度 然而我对C 的了解却很少 因此 我检查了 Rcpp 提供的文档 以及 Dirk Eddelbuttel 网站上提供的其他文档 阅读完所有内容后 我尝试执行一个用 R 编写的简单循环 不幸的是 我
  • 如何用Javascript轻松监听xhr请求?

    我正在开发一个 Firefox 扩展 我想知道页面何时发起 xhr 请求 我看到了一些代码 但它们非常大 有没有简单的示例可以实现此目的 我正在测试这段代码 function TracingListener this receivedDat
  • Angular 2如何分别加载2个App根组件

    是否可以加载 2 个不同的根组件 不是在页面中并排 找一个笨蛋的例子 http plnkr co edit XSJ8ac 唯一的区别是两个根组件都加载在单个页面中
  • 有没有一种快速、简单的方法来转储 MacOS X 钥匙串的内容?

    我正在寻找一种方法将 OS X 钥匙串的内容转储 导出 到我可以在其他地方轻松处理的文件中 例如制表符分隔的纯文本或类似的内容 钥匙串访问应用程序不提供任何此类功能 获取钥匙的数据需要依次打开每个钥匙串 并且每次都必须输入钥匙串的密码才能查
  • 占位符文本溢出:省略号在 IE10 中不起作用

    如果占位符中的文本长度较长 我使用下面的代码显示省略号 它在 Chrome 和 Firefox 中运行良好 在 IE 中它不起作用 input placeholder text overflow ellipsis 我遇到了同样的问题并遇到了
  • 如何在 MySQL innoDB 中重建索引并更新统计信息?

    我有使用 MS SQL 服务器的经验 它是可能且有用的 and 重建索引 https msdn microsoft com en us library ms189858 aspx 我在MySQL innoDB中找不到这样的选项 有这样的选项
  • CRAN 提交 - R CMD 检查警告 - 使用编译标志

    我正在尝试将我的第一个包裹提交至CRAN在我的机器上 我在运行时收到以下警告R CMD check via RStudio checking compilation flags used WARNING Compilation used t
  • C# NetCDF 库

    我目前正在从事 或至少正在计划 几个需要处理大量重复数据的项目 这种数据在电子表格或数据库中运行良好 但在 XML 中却很糟糕 NetCDF 似乎是一个不错的文件格式选择 但是 我的工作是使用 C 进行的 并且没有可用的 官方 NetCDF
  • 我可以从 Eclipse 视图中删除重复的运行配置吗?

    我有 Maven 父项目和孩子 当我去运行 gt 运行配置 in Java应用程序我两次看到很少的启动器 唯一的区别是路径Common选项卡 部分另存为 共享文件 我什至无法在不重命名第二个的情况下重命名其中一个 有没有办法至少隐藏两个同名
  • 具有可选参数的方法

    有没有一种方法可以使方法可以接受参数 但也可以在没有参数的情况下调用 在这种情况下 参数被视为nil像下面这样 some func variable some func def some func variable nil end
  • AngularJS 主页的多个 ng-views

    好吧 我是 Angluar 的新手 刚刚开始使用 ngRoute 和 ngView 指令 我遇到了一些对我来说是问题的问题 但我怀疑这只是一个问题 因为我缺乏 Angluar 的经验 我的 index html 页面上有以下标记 简化 di
  • Mercurial MSSCCAPI 提供商?

    有人知道 Mercurial 的 MSSCCAPI 提供商吗 我想使用 PowerBuilder 尝试 Kiln Mercurial 但 PowerBuilder IDE 只识别 MSSCCAPI 提供程序 即not与 MS SCC Pac
  • Microsoft Edge 请求后退/前进按钮上的新页面

    单击后退和前进按钮时 最新版本的 Microsoft Edge 浏览器 41 162 会请求新页面 我在多个平台上测试了多个浏览器 只有 Edge 表现出这种行为 这是一个测试页 http www easynotecards com sta
  • aws sagemaker模型训练中是否有某种持久的本地存储?

    我用aws sagemaker做了一些实验 从S3下载大数据集的时间是非常有问题的 特别是当模型仍处于开发阶段 并且你想要某种相对较快的初始反馈时 是否有某种本地存储或其他方式来加快速度 EDIT我指的是批量训练服务 它允许您以 Docke
  • 为什么 Flask 会话的值必须是 JSON 可序列化的?

    我正在尝试在 Flask 应用程序中为用户会话实例化一个基本模型实例 我对我的类必须是 JSON 可序列化的要求感到措手不及 我认为会话字典只是存储会话信息的任意构造 但听起来它的使用有更多限制 其中之一显然是 JSON 可序列化的值 还有
  • 可继承的版本 Maven 插件规则

    跑步时mvn versions display dependency updates为了版本 Maven 插件 https www mojohaus org versions maven plugin 我看到很多这样的事情 INFO org