Няма твърдо правило, че имената на модулите съответстват на името на пакета. Модулите обикновено използват само името на пакета, тъй като това вероятно е уникално пространство от имена. Например можете да създадете модул, наречен example
с пакета com.example
. module.xml
просто трябва да влезе $JBOSS_HOME/modules/example/main
. Имайте предвид, че main
е слотът по подразбиране за модули.
В module.xml
просто трябва да посочите вашия jar файл и всички необходими зависимости. Ако искате зависимостите да бъдат модули сами по себе си, тогава трябва изрично да ги декларирате във вашия module.xml
файл. Ако не ви интересува всяка зависимост да има свой собствен модул, можете просто да ги включите всички като ресурси във вашия module.xml
.
Примерен модул, използващ зависимости от ресурси:
<?xml version="1.0" ?>
<module xmlns="urn:jboss:module:1.1" name="example">
<resources>
<resource-root path="example.jar"/>
<resource-root path="guava-19.jar"/>
</resources>
</module>
В горния случай библиотеките example.jar
и guava-19.jar
трябва да са в директорията $JBOSS_HOME/modules/example/main
.
Пример за използване на зависимости на модула:
<?xml version="1.0" ?>
<module xmlns="urn:jboss:module:1.1" name="example">
<resources>
<resource-root path="example.jar"/>
</resources>
<dependencies>
<module name="com.google.guava"/>
</dependencies>
</module>
В горния случай тук само example.jar
трябва да бъде в директорията $JBOSS_HOME/modules/example/main
.
Можете също да използвате командата module add
CLI, за да добавите модули към WildFly. Отново името на модула няма значение, стига да е уникално. Ето например как бихте добавили PostgreSQL модул с CLI.
module add --name=org.postgresql --resources=~/Downloads/postgresql-9.4-1203.jdbc42.jar --dependencies=javax.api,javax.transaction.api
Използването на CLI за добавяне на модули избягва необходимостта от ръчно създаване на структурата на модула и module.xml
файла. Единствената уловка е, че CLI и WildFly трябва да са на една и съща файлова система и потребителят, работещ с CLI, трябва да има разрешения за запис в $JBOSS_HOME/modules
. Командата автоматично ще създаде структурата на директорията, ще копира ресурсите и ще генерира файла module.xml
.
Що се отнася до MANIFEST.MF
записите. JBoss Modules има ключ за въвеждане, използван за дефиниране на зависимости на модула, наречен Dependencies:
. Въпреки това смятам, че използването на module.xml
е малко по-приятно, така че не се налага да създавате отново или модифицирате двоични файлове, ако трябва да добавите зависимост от модул или да премахнете зависимост от модул. За внедрявания обаче може да има смисъл да използвате записа MANIFEST.MF
.
Ако все още не сте го виждали, погледнете зареждането на класа в документацията на WildFly. Това най-вече ще обясни как работи зареждането на класове за внедрявания.
person
James R. Perkins
schedule
18.06.2016