可继承的版本 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 插件规则 的相关文章

  • 如何默认将 Maven 插件附加到阶段?

    我有一个 Maven 插件应该在编译阶段运行 所以在项目中consumes我的插件 我必须做这样的事情
  • Java中反射是如何实现的?

    Java 7 语言规范很早就指出 本规范没有详细描述反射 我只是想知道 反射在Java中是如何实现的 我不是问它是如何使用的 我知道可能没有我正在寻找的具体答案 但任何信息将不胜感激 我在 Stackoverflow 上发现了这个 关于 C
  • Java EE:如何获取我的应用程序的 URL?

    在 Java EE 中 如何动态检索应用程序的完整 URL 例如 如果 URL 是 localhost 8080 myapplication 我想要一个可以简单地将其作为字符串或其他形式返回给我的方法 我正在运行 GlassFish 作为应
  • 如何找到给定字符串的最长重复子串

    我是java新手 我被分配寻找字符串的最长子字符串 我在网上研究 似乎解决这个问题的好方法是实现后缀树 请告诉我如何做到这一点或者您是否有任何其他解决方案 请记住 这应该是在 Java 知识水平较低的情况下完成的 提前致谢 附 测试仪字符串
  • Liferay ClassNotFoundException:DLFileEntryImpl

    在我的 6 1 0 Portal 实例上 带有使用 ServiceBuilder 和 DL Api 的 6 1 0 SDK Portlet 这一行 DynamicQuery query DynamicQueryFactoryUtil for
  • Mockito when().thenReturn 不必要地调用该方法

    我正在研究继承的代码 我编写了一个应该捕获 NullPointerException 的测试 因为它试图从 null 对象调用方法 Test expected NullPointerException class public void c
  • 斯坦福 NLP - 处理文件列表时 OpenIE 内存不足

    我正在尝试使用斯坦福 CoreNLP 中的 OpenIE 工具从多个文件中提取信息 当多个文件 而不是一个 传递到输入时 它会给出内存不足错误 All files have been queued awaiting termination
  • 如何在PreferenceActivity中添加工具栏

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • 十进制到八进制的转换[重复]

    这个问题在这里已经有答案了 可能的重复 十进制转换错误 https stackoverflow com questions 13142977 decimal conversion error 我正在为一个类编写一个程序 并且在计算如何将八进
  • Java按日期升序对列表对象进行排序[重复]

    这个问题在这里已经有答案了 我想按一个参数对对象列表进行排序 其日期格式为 YYYY MM DD HH mm 按升序排列 我找不到正确的解决方案 在 python 中使用 lambda 很容易对其进行排序 但在 Java 中我遇到了问题 f
  • Java TestNG 与跨多个测试的数据驱动测试

    我正在电子商务平台中测试一系列商店 每个商店都有一系列属性 我正在考虑对其进行自动化测试 是否有可能有一个数据提供者在整个测试套件中提供数据 而不仅仅是 TestNG 中的测试 我尝试不使用 testNG xml 文件作为机制 因为这些属性
  • 加密 JBoss 配置中的敏感信息

    JBoss 中的标准数据源配置要求数据库用户的用户名和密码位于 xxx ds xml 文件中 如果我将数据源定义为 c3p0 mbean 我会遇到同样的问题 是否有标准方法来加密用户和密码 保存密钥的好地方是什么 这当然也与 tomcat
  • Eclipse Java 远程调试器通过 VPN 速度极慢

    我有时被迫离开办公室工作 这意味着我需要通过 VPN 进入我的实验室 我注意到在这种情况下使用 Eclipse 进行远程调试速度非常慢 速度慢到调试器需要 5 7 分钟才能连接到远程 jvm 连接后 每次单步执行断点 行可能需要 20 30
  • 仅将 char[] 的一部分复制到 String 中

    我有一个数组 char ch 我的问题如下 如何将 ch 2 到 ch 7 的值合并到字符串中 我想在不循环 char 数组的情况下实现这一点 有什么建议么 感谢您花时间回答我的问题 Use new String value offset
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 捕获的图像分辨率太大

    我在做什么 我允许用户捕获图像 将其存储到 SD 卡中并上传到服务器 但捕获图像的分辨率为宽度 4608 像素和高度 2592 像素 现在我想要什么 如何在不影响质量的情况下获得小分辨率图像 例如我可以获取或设置捕获的图像分辨率为原始图像分
  • 使用 JMF 创建 RTP 流时出现问题

    我正处于一个项目的早期阶段 需要使用 RTP 广播DataStream创建自MediaLocation 我正在遵循一些示例代码 该代码目前在rptManager initalize localAddress 出现错误 无法打开本地数据端口
  • java.lang.IllegalStateException:驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统属性设置 - Similiar 不回答

    尝试学习 Selenium 我打开了类似的问题 但似乎没有任何帮助 我的代码 package seleniumPractice import org openqa selenium WebDriver import org openqa s
  • 如何实现仅当可用内存较低时才将数据交换到磁盘的写缓存

    我想将应用程序生成的数据缓存在内存中 但如果内存变得稀缺 我想将数据交换到磁盘 理想情况下 我希望虚拟机通知它需要内存并将我的数据写入磁盘并以这种方式释放一些内存 但我没有看到任何方法以通知我的方式将自己挂接到虚拟机中before an O
  • Spring Boot @ConfigurationProperties 不从环境中检索属性

    我正在使用 Spring Boot 1 2 1 并尝试创建一个 ConfigurationProperties带有验证的bean 如下所示 package com sampleapp import java net URL import j

随机推荐

  • 将列转置为行 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