Защо спецификациите на JBoss/wildfly не съдържат всички предоставени модули?

Wildfly 8.x се доставя с BOM за лесно управление на зависимостите: https://github.com/wildfly/boms

Те са полезни за базираното на модул зареждане на класове, описано тук: https://docs.jboss.org/author/display/WFLY8/Implicit+module+dependencies+for+deployments

Въпреки това, когато погледна в $JBOSS_HOME\modules\system\layers\base, виждам много, много повече включени модули. Например, включени са десетки org.apache модули като commons-lang и др.

Тези deps също не са в родителския POM на JBoss: https://github.com/jboss/jboss-parent-pom

Нито спецификациите на Java EE: https://github.com/jboss/jboss-javaee-specs

За тези зависимости (такива, които не са в BOM или в документите), как разработчикът трябва да знае, че са предоставени? Каква е предвидената стратегия за управление на зависимостите за разработчици, използващи инструменти като Maven и др.


person jordanpg    schedule 06.05.2015    source източник


Отговори (1)


Не всички модули, използвани от сървъра, са предназначени за използване при внедрявания. Има списък с имплицитни зависимости на модул.

Ако погледнете файла module.xml за някои от тях, вероятно ще видите свойство <property name="jboss.api" value="private"/>. Това по същество просто означава, че зависимостта може да се промени по всяко време. Може да бъде надстроен до различна версия или дори премахнат. Най-добре е просто да включите тези зависимости във вашето внедряване.

person James R. Perkins    schedule 07.05.2015
comment
Благодаря. Допълнителна литература: разработчик .jboss.org/people/ozizka/blog/2012/11/12/ - person jordanpg; 08.05.2015