version-maven-plugin: update-свойство не обновляет pom. xml - PullRequest
0 голосов
/ 30 января 2020

Hi Meier Я использовал следующую цель:

mvn versions:update-property
    -Dproperty="emom.web.dependency.shr.version"
    -Dincludes:org.safeway.com:emom-shr
    -DgenerateBackupPoms=false
    -DallowIncrementalVersios=true
    -DallowSnapshots=true
    clean package

Моя работа B pom. xml is:

<dependency>
  <groupId>com.safeway.app</groupId>
  <artifactId>emom-shr</artifactId>
  <version>${emom.web.dependency.shr.version}</version>
</dependency>

В свойствах он имеет версию, жестко запрограммированную :

<emom.web.dependency.shr.version>19.6.5-SNAPSHOT</emom.web.dependency.shr.version>

My Job A pom. xml:

<groupId>com.safeway.app</groupId>
<artifactId>emom-shr</artifactId>
<version>20.1.0-SNAPSHOT</version>
<packaging>jar</packaging>

Когда я запускаю вышеуказанную цель, Maven выбирает последнюю версию (т.е. 20.1.0) из Artifactory, но когда я проверяю pom. xml задания B под свойствами, он все равно говорит 19.6.5. Мне нужен способ изменить 19.6.5 или текущую версию на последнюю доступную версию. Я делаю что-то неправильно? Я не могу понять это.

1 Ответ

0 голосов
/ 31 января 2020

Вот пример versions-maven-plugin:update-property работы на практике. В качестве примера я использовал общую библиотеку Mockito, которая работает для всех, как и в Maven Central.

Начиная с этого POM (отмечая свойство mockito-version):

<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>abc</groupId>
    <artifactId>def</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <properties>
        <mockito-version>2.22.0</mockito-version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <version>${mockito-version}</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

</project>

Простейший способ обновить его до последней версии релиза таков:

mvn versions:update-property -Dproperty=mockito-version

Заменить mockito-version на emom.web.dependency.shr.version в вашем случае.

Затем вы можете начать использовать больше Параметры цели , чтобы настроить параметры. Например, вы можете:

  • Разрешать снимки, а не только выпуски, с -DallowSnapshots=true.

  • Запрещать обновления основных версий (т. Е. Третий элемент справа) с -DallowMajorUpdates=false. Обратите внимание, что логика c вокруг этих разделов с номерами версий в плагине выглядит немного неаккуратно - или не так, как я ожидаю.

  • Избегайте создания резервных POM с -DgenerateBackupPoms=false. Это чище, но если вы пропустите эту опцию, вы можете использовать mvn versions:revert, чтобы вернуться к тому, с чего начали.

Чтобы применить это к вашему сценарию, я думаю, что вам нужно :

  • Убедитесь, что в вашей фактической команде нет опечаток (как в вопросе и комментариях).

  • Избавьтесь от опции, которые не отображаются в опции .

  • Вероятно, упростите ситуацию, не пытаясь запустить это в сочетании с чем-либо другим (если это не происходит в автоматизации) , так что избавьтесь от clean package в конце команды.

...