В maven очень легко установить свойства в pom со следующим синтаксисом:
...
<properties>
<myValue>4.06.17.6</myValue>
</properties>
...
Теперь мне нужно создать свойство, которое зависит от версии моего pom. Для создания свойства я хочу сделать следующее (псевдокод Java):
String[] parts = version.split("\\.");
String.format("V%s_%s_%s_P%s", splitted[0], splitted[1],splitted[2],splitted[3]);
// example: 4.06.17.6 => V_4_06_17_P6
Он должен быть динамическим, потому что он используется в качестве имени тега в нашем репозитории и всегда должен быть синхронизирован с версией артефакта.
Любые идеи, как создать эти «динамические» свойства?
validate
, поэтому приведенный выше фрагмент кода выполнит цель, когда активна фаза проверки. когда вы вызываете цель напрямую, например.release:prepare
, что происходит, так это то, что maven запускает цель напрямую, пропуская любые фазы жизненного цикла, поэтому сама цельrelease:prepare
не увидит свойство но жизненный цикл, разветвленный с помощьюrelease:prepare
, увидит его. Таким образом,release:prepare
не сможет использовать свойство для пометки SCM, но свойство будет присутствовать в разветвленной сборке, которую запускает подключаемый модуль выпуска. 17.08.2012_
, которую вы хотите, ни инъекцию_P
. Я рекомендую изменить требования к имени тега, а не пытаться согнуть Maven ;-) 17.08.2012<execution>
(остановите меня, если я ошибаюсь!) 13.05.2013