Получить версию Vaadin в потоке
В Vaadin 8 я смог получить информацию о версии с
com.vaadin.shared.Version.getFullVersion()
В Vaadin Flow я не могу найти способ получить текущую версию, по крайней мере, ту, которую я ожидал. Я нашел это
com.vaadin.flow.server.Version.getFullVersion()
но возвращаемое значение 1.2.2
и не ожидаемый 12.0.0
, Я думаю, это версия сервера или что-то..
Как правильно получить используемую версию фреймворка vaadin в потоке vaadin?
1 ответ
Начиная с 10, версия Vaadin не имеет собственного содержимого, даже маркера номера версии. Это только набор версий зависимостей, которые были протестированы на совместную работу.
com.vaadin.flow.server.Version.getFullVersion()
дает версию зависимости Vaadin Flow. В большинстве случаев это более подходящий номер версии для технических целей.
Vaadin 10 и Vaadin 11 использовали Flow 1.0.x, тогда как Vaadin 12 использует версию 1.2.x. Vaadin 13, скорее всего, будет использовать Flow версии 1.3.x или 2.0.x, в зависимости от того, насколько большие изменения будут внесены к тому времени.
Один из возможных способов получить версию Vaadin - использовать
VaadinCoreShrinkWrap.class.getAnnotation(NpmPackage.class).version()
Не оптимально, но должно работать.
Этот подход работает начиная с Vaadin 14. Это вызовет ошибки в более старых версиях.
Если вы хотите показать версию Vaadin, а не версию Flow, я вижу один вариант, чтобы это произошло, но для этого требуется больше кода и некоторая конфигурация maven.
Вам следует
- Создайте файл свойств, включая строку
vaadin.version=${vaadin.version}
- Убедитесь, что файл включен в ресурсы, которые фильтрует maven-resourses-plugin с помощью чего-то подобного в вашей конфигурации:
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/config.properties</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<excludes>
<exclude>**/config.properties</exclude>
</excludes>
</resource>
</resources>
- Прочитайте файл свойств и получите значение для свойства версии
Properties properties = new Properties();
properties.load(MainView.class.getResourceAsStream("config.properties"));
properties.get("vaadin.version");