Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Как правильно указывать зависимость в Maven для Selenide и других библиотек

maven
java
Теги: #<Tag:0x00007fedbfd50a70> #<Tag:0x00007fedbfd508e0>

(Vitaliy Schwarz) #1

В чем разница между

        <dependency>
            <groupId>com.codeborne</groupId>
            <artifactId>selenide</artifactId>
            <version>RELEASE</version>
        </dependency>

и

<dependency>
    <groupId>com.codeborne</groupId>
    <artifactId>selenide</artifactId>
    <version>4.9.1</version>
    <scope>test</scope>
</dependency>

?? Я правильно понял, что первый вариант предпочтительнее так как автоматически подключает последнюю версию? Можно ли этот фокус применять ко всем остальным зависимостям?


(Ruslan Semerenko) #2

Maven 3.x Compatibility Notes

Internally, Maven 2.x used the special version markers RELEASE and LATEST to support automatic plugin version resolution. These metaversions were also recognized in the element for a declaration. For the sake of reproducible builds, Maven 3.x no longer supports usage of these metaversions in the POM. As a result, users will need to replace occurrences of these metaversions with a concrete version.


(Vitaliy Schwarz) #3

Использую версию 4.0.0 и прекрасно работают эти теги…


(Ruslan Semerenko) #4

Это всего лишь совпадение.
Если копнуть в то как мавен резолвит версии, то можно узнать, что строка с версией делится на токены по точкам/дефисам. Если в токене есть не числа, то они вырезаются. Если токен остается пустым, то заменяется на 0. Соответственно release заменится на 0. А число без скобочек означает: взять конкретно эту версию, либо старше, если указанной нет. Так как версии 0 нет, то берется последняя.


(asolntsev) #5

Общая рекомендация - не надеяться на “RELEASE” или “LATEST”, а прописывать версию явно. Потому, что иначе в один прекрасный момент может прилететь обновление, которое внезапно сломает вам билд.

Селенида это, конечно, не касается. :slight_smile:


(Vitaliy Schwarz) #6

Значит, все же эти теги рабочие, просто не рекомендуется… Спасибо за ответ) А есть ли разница между Release and Latest?


(Vitaliy Schwarz) #7

И это хорошо)


(asolntsev) #8

Не знаю, рабочие ли. Я имел в виду любые механизмы, подтягивающие автоматически последнюю версию. Например, в мавене можно прописать <version>4.+</version>