@P_Alexander
First head

В pom.xml используют JSTL ${versions.wildfly}?

Здравствуйте, читая статьи часто вижу что в файле pom.xml используют такой синтаксис
<dependency>
            <groupId>org.wildfly</groupId>
            <artifactId>wildfly-arquillian-container-managed</artifactId>
            <version>${versions.wildfly}</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
и не могу понять это используют для примера типа подставь сам версию, или тут используют EL?
Вот например в кусочке котором я написал выше откуда берется переменная versions? Я понимаю что тут инфы мало, но в принципе где хранятся они? Если кто может объяснить или скинуть статью где это объясняется буду безумно рад!)
Кому интересно этот кусочек вот отсюда, этот проект в качестве примера так что долго искать pom.xml не прийдется - https://github.com/evgeniy-khist/examples/blob/mas...
Спасибо.
  • Вопрос задан
  • 67 просмотров
Решения вопроса 2
EreminD
@EreminD
Кое-что умею
ну, кроч, там же, в помнике, есть секция properties, где можно задать значения и таскать их по всему пому

вот, например
<properties>
        <java.version>1.8</java.version>
        <hibernate.version>4.3.5.Final</hibernate.version>
        <log4j.version>2.6</log4j.version>
</properties>


а если, при запуске, я захочу переопределить значение, скажем для log4j.version, то я просто могу
mvn clean install -Dlog4j.version=тут новое значение


В статьях такое пишут
${versions.wildfly}
просто потому, что версия не важна и предполагается, что вы используете самую актуальную (ну или самую стабильную версию)

Зачем такое вообще делать?
Предположим, у вас в проекте много зависимостей от одного поставщика
Spring, например. У него там тьма пакетов. При этом, рекомендуется использовать эту тьму всегда одной версии для всех (они их так и релизят)
Если версия задается только в одном месте - легко будет ее переопределить для всего проекта
Ответ написан
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Это не JSTL, а Expression Language. И это JSTL его использует.

В приведённом вами примере значение versions.wildfly берётся из одноимённого тега в секции properties.

Объяснений на статью не хватит, EL используется в pom.xml очень ограничено. В документации об этом полстранички.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы