Укажите версию артефакта вне помпа - PullRequest
1 голос
/ 03 июня 2010

Есть ли способ указать версию артефакта вне файла POM?

У меня есть 2 CI-проекта, которые создают артефакт. Один создает «стабильную» версию разработки из ветви «разработка», а другой создает нестабильную версию, которая является результатом слияния всех ветвей активных компонентов в ветку разработки. Я хочу, чтобы стабильная версия собиралась как xyz-1.0.jar, а сборка интеграции - как xyz-1.0-SNAPSHOT.jar. Есть ли способ для задания CI запустить задачу maven или указать через командную строку, должен ли быть создан Jar выпуска или моментального снимка без изменения POM вручную? В настоящее время у меня версия указана как 1.0 в пом. Я подумал об использовании плагина релиза, но я не хочу, чтобы он автоматически увеличивал номер версии и помечал теги.

Ответы [ 3 ]

1 голос
/ 03 июня 2010

Краткий ответ: нет. И вот несколько дополнительных замечаний:

  • Нет особого смысла использовать «выпущенную» версию (т.е. не SNAPSHOT) для ветви под CI, поскольку выпущенные версии не загружаются снова, даже если доступна более новая версия.
  • Выпущенные версии должны быть помечены (например, 1.0), обслуживание выполняется в ветке, полученной из тега (например, 1.0.1-SNAPSHOT).
  • Если вы хотите различать версии, созданные из разных веток, используйте разные версии в POM.
1 голос
/ 03 июня 2010

Я смог сделать это, используя свойство в моем POM, а затем переопределив его через командную строку.

pom.xml:

 ...
    <version>${artifactVersion}</version>
    <properties>
       <artifactVersion>1.0</artifactVersion>  <!-- default version -->
    </properties>
    ...

Затем переопределяем с mvn -DartifactVersion=1.0-SNAPSHOT package

Но ответ Паскаля выше более соответствует тому, что я действительно спрашивал. Мое решение - это скорее обходной путь, который я чувствую.

0 голосов
/ 03 июня 2010

Этого можно добиться, используя профили maven

...