Как встроить базу данных H2 в файл JAR, доставленный клиенту? - PullRequest
5 голосов
/ 14 декабря 2010

Я использую базу данных H2 для настольного приложения во встроенном режиме.Когда я сжимаю приложение в файл jar, файл базы данных опускается.Итак, когда я запускаю MyApplication.jar, ничего не работает.Как правильно встраивать / включать / соединять файл h2.jar с MyApplication.jar?Или, может быть, есть другой способ доставки базы данных и приложения в комплекте?

Ответы [ 4 ]

3 голосов
/ 15 декабря 2010

Если вы используете Maven для создания своего проекта, просто используйте maven-shade-plugin ... отличные результаты и контроль, я часто его использую.

Для встраивания всех ваших зависимостей вы должны написать что-то вроде:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>1.4</version>
    <executions>
      <execution>
        <phase>package</phase>
        <goals>
          <goal>shade</goal>
        </goals>
      </execution>
    </executions>
  </plugin>

Тогда с помощью обычного «пакета mvn» у вас будут все jar-файлы зависимостей, включенные в jar-файл приложения.

При дальнейшей настройке вы можете контролировать, что входит, а что нет.

3 голосов
/ 14 декабря 2010

Одна из распространенных схем - поместить h2.jar в каталог lib относительно вашего приложения и включить запись Class-Path в манифест JAR с записью для него:

Class-Path: lib/h2.jar lib/…

Приложение: Этот небольшой проект содержит ссылку на спецификацию JAR и удобную утилиту для проверки манифеста in situ .

2 голосов
/ 15 декабря 2010

Если вы хотите поместить саму базу данных в файл JAR, то это объяснение может помочь: http://www.h2database.com/html/features.html#database_in_zip

Это также обсуждается в этой теме в H2форум .

0 голосов
/ 14 декабря 2010

Если вы используете maven для сборки своего проекта, взгляните на maven-assembly-plugin (jar-with-dependencies). Это даст один jar со всеми зависимостями, упакованными в него.

...