Как поддерживать мочалку манистой версии и версии POM в синхронизации в Maven с Tycho
-
27-09-2019 - |
Вопрос
Я использую Maven с Tycho, чтобы построить плагин Eclipse. Tycho генерирует файл POM.XML для Maven, осматривая файл манифеста плагина. Теперь и файл манифеста, так и файл POM имеют версию плагина, и они должны храниться в синхронизации вручную. Это потому, что я сделал некоторую настройку в сгенерированном файле POM и не могу перезаписать его каждый раз, когда я меняю версию в манифесте.
Мой вопрос здесь есть, есть ли способ сохранить эти версии синхронизировать автоматически с помощью Tycho?
Решение
Похоже, вы можете обновить версии, используя Tycho-version-plugin (Используя Tycho 0.14.0 здесь):
mvn -Dtycho.mode=maven org.eclipse.tycho:tycho-versions-plugin:set-version -DnewVersion=NEW_VERSION-SNAPSHOT
Это обновляет POMS, манифесты и функции .xml
Другие советы
Прямо сейчас вы должны держать их в синхронизации вручную. Есть открытый выпуск - Tycho-214: процедуры выпуска OSGI и лучшие практики - что должно охватить это. В настоящее время это нацелено на 0,9,0 - следующая версия.
У нас была похожая ситуация. Мы устали отменить версию в манифесте и в Pom.xml. Но изменение версии с Maven не было хорошим решением, из-за работы специальной команды maven каждый раз не было для нас решения.
Но я нашел тихопугин, который мы интегрировали в сборку.
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-versions-plugin</artifactId>
<version>${tycho.version}</version>
<executions>
<execution>
<id>versions</id>
<phase>validate</phase>
<goals>
<goal>update-pom</goal>
</goals>
</execution>
</executions>
</plugin>
Этот плагин обновляет версию в POM.xml с версией манифеста каждый сборку автоматически.
Больше информации https://www.eclipse.org/tycho/sitedocs/tycho-relase/tychoversions-plugin/plugin-info.html.
Это довольно удобно использовать версию Tiger Plugin для Eclipse. Этот плагин добавляет контекстное меню в Eclipse, который позволяет одновременно обновлять версии OSGI и POM.
Версия Tiger можно скачать здесь: https://github.com/inventage/version-tiger.