2016-11-17 16 views
0

В моем проекте я подключаюсь к базе данных mysql. Чтобы развернуть мою банку на предохранителе jboss, мне нужно добавить mysql-connector-java в папку развертывания. У вас есть идея, как упаковать мой проект, чтобы доставить одну банку?упаковка maven project jboss fuse

ответ

2

Чтобы вставить банку внутри пучка сделать следующее:

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