В моем проекте я подключаюсь к базе данных mysql. Чтобы развернуть мою банку на предохранителе jboss, мне нужно добавить mysql-connector-java в папку развертывания. У вас есть идея, как упаковать мой проект, чтобы доставить одну банку?упаковка maven project jboss fuse
ответ
Чтобы вставить банку внутри пучка сделать следующее:
1) Объявить это как зависимость
<dependencies>
<dependency>
<groupId>com.your.company</groupId>
<artifactId>your-needed-jar</artifactId>
<version>1.3.4</version>
</dependency>
<dependencies>
2) Говори maven-bundle-plugin внедрить его.
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>3.0.1</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Embed-Dependency>your-needed-jar</Embed-Dependency>
<Import-Package>
eventually.unneded.pkg;resolution:="optional",
*
</Import-Package>
<Export-Package>
com.your.company.app.exportedpkg
</Export-Package>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
Хотя эта работа в общем случае, может быть проблемы с загрузкой классов библиотек, которые делают много классов выполнения проксирования и генерацию класса (как ORMs).
ИМХО лучше было бы сделать библиотеку доступной из самого JBoss Fuse. Для этого:
1) копия mysql-connector-java-xxx.java
в JBoss Fuse Lib/каталог
2) редактировать config.properties
в JBoss и т.д./Fuse каталог
3) добавить com.mysql.jdbc
пакет в список
org.osgi.framework.system.packages= \
...
org.apache.karaf.diagnostic.core;version="2.4.0.redhat-621084", \
com.mysql.jdbc;version="xxx", \
Теперь вы не необходимо встроить библиотеку в свой пакет, вы можете напрямую импортировать ее. Системный пакет (ID: 0) экспортирует его.
Для получения дополнительной информации этот документ в формате PDF может предоставить полезную информацию: Red Hat JBoss Fuse 6.2 Managing OSGi Dependencies