Maven переопределяет project.version из командной строки

Интересно, можно ли переопределить переменную project.version/version в maven через командную строку?

Не работает следующее:

mvn deploy -Dversion=1.0-test-SNAPSHOT  
mvn deploy -Dproject.version=1.0-test-SNAPSHOT  

Заранее благодарим за помощь!

Мой pom.xml:

<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>just.another.company.name</groupId>
    <artifactId>my-pom</artifactId>
    <version>1.3-SNAPSHOT</version>
    <name>My Module</name>
    <packaging>jar</packaging>
    <description>POM Project for My Module</description>
</project>

Ответы

Ответ 1

Просто вы не можете переопределить project.version. Попробуйте:

mvn versions:set -DnewVersion=<version>

Обычно я начинаю с обновления parentPom

mvn versions:set -DnewVersion=1.0.3-SNAPSHOT

Этого было бы достаточно, если родительский pom содержал все дочерние проекты, если нет, вам нужно будет перейти в суперпроект, содержащий весь дочерний проект, и выполнить

mvn versions:update-child-modules

Также два предыдущих шага будут достаточно, если parentPom существует в относительном пути, если вам не потребуется устанавливать проект parentPom с новой версией

mvn install

Обычно этого будет достаточно, если модуль не зависит от другого модуля. если вы это сделаете, объявите его версию как project.version, как это, и она будет автоматически отражена

<version>${project.version}</version>

Проверьте maven Версии плагинов.

Ответ 2

Да, вы можете переопределить версию проекта, передав требуемую переменную из командной строки.

Убедитесь, что вы используете переменную в pom.xml

Например:

mvn deploy -Dversion=1.0-test-SNAPSHOT 

in pom.xml

<version>${version}</version>

Это должно быть выбрано во время выполнения. Если этот подход не работает, можете ли вы показать, как вы используете их в своем pom.xml?

Ответ 3

mvn -Dversion=1.0-test-SNAPSHOT deploy.
Синтаксис: mvn [опции] [цели] [фаза]