В pom.xml используют JSTL ${versions.wildfly}?
ну, кроч, там же, в помнике, есть секция 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, например. У него там тьма пакетов. При этом, рекомендуется использовать эту тьму всегда одной версии для всех (они их так и релизят)
Если версия задается только в одном месте - легко будет ее переопределить для всего проекта
Это не JSTL, а Expression Language. И это JSTL его использует.
В приведённом вами примере значение versions.wildfly берётся из одноимённого тега в секции properties.
Объяснений на статью не хватит, EL используется в pom.xml очень ограничено. В документации об этом полстранички.