Как предоставить мой файл rules.xml в аргументе -DrulesUri версий maven: update-properties без необходимости указывать его в файле pom.xml?

Я использую цель обновления свойств плагина Maven Versions для обновления свойств в pom.xml нескольких проектов. (https://www.mojohaus.org/versions-maven-plugin/update-properties-mojo.html). Мне нужна последняя версия зависимости для свойств.

Теперь есть несколько двоичных файлов с неправильными версиями. Я хочу, чтобы мой код игнорировал эти версии. Для этого я создал свой файл «rules.xml». Я хочу предоставить его как аргумент -DrulesUri для цели обновления свойств.

Я уже пытался указать этот файл rules.xml в файле pom.xml проекта, как показано на (Плагин версий Maven: ссылка на rule.xml из зависимости maven?). Это работало, так как плагин мог успешно игнорировать указанные версии в rules.xml. Итак, с файлом rules.xml проблем нет. Но в моем случае это бесполезно, так как задействовано много проектов, и я не могу обновлять pom.xml каждого проекта.

В документации свойства rulesUri говорится: «URI файла ruleSet, содержащего правила, управляющие сравнением номеров версий. URI может быть либо URI Wagon, либо URI пути к классам (например, classpath:///package/sub/package/rules. xml)". Эта большая документация не помогает мне. Мне нужен пример того, как указать файл rules.xml в аргументе -DrulesUri. Я попытался указать файл rules.xml как локальный относительный путь/абсолютный путь. Но цель update-properties, похоже, не распознает правила и просто выполняется аналогично выполнению без аргумента -DrulesUri. Я попытался прочитать https://maven.apache.org/wagon/, чтобы понять URI Wagon. Но я не нашел простого способа загрузить куда-нибудь свой rules.xml, а затем использовать этот URI Wagon для указания в -DrulesUri.

Это мой файл rules.xml: -

<?xml version="1.0" encoding="UTF-8"?>
<ruleset xmlns="http://mojo.codehaus.org/versions-maven-plugin/rule/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" comparisonMethod="maven" xsi:schemaLocation="http://mojo.codehaus.org/versions-maven-plugin/rule/2.0.0 http://mojo.codehaus.org/versions-maven-plugin/xsd/rule-2.0.0.xsd">
    <ignoreVersions>
        <ignoreVersion type="regex">25243.*.*</ignoreVersion>
    </ignoreVersions>
    <rules>
    </rules>
</ruleset>

person Yogiraj Kulkarni    schedule 05.01.2019    source источник


Ответы (1)


Используйте 1_

Пример:

mvn versions:display-dependency-updates -Dmaven.version.rules=file:///$HOME/.m2/rules.xml

Из AbstractVersionsReport.java исходный код:

    /**
     * URI of a ruleSet file containing the rules that control how to compare
     * version numbers. The URI could be either a Wagon URI or a classpath URI
     * (e.g. <code>classpath:///package/sub/package/rules.xml</code>).
     *
     * @since 1.0-alpha-3
     */
    @Parameter( property = "maven.version.rules" )
    private String rulesUri;
person Jonathan Buch    schedule 24.06.2019