簡體   English   中英

如何將H2數據庫嵌入到傳遞給客戶端的jar文件中?

[英]How to embed H2 database into jar file delivered to the client?

我在嵌入模式下使用H2數據庫作為桌面應用程序。 當我將應用程序壓縮到jar文件時,省略了數據庫文件。 所以,當我運行MyApplication.jar時,沒有任何作用。 使用MyApplication.jar嵌入/包含/連接h2.jar文件的正確方法是什么? 或者也許還有另一種方法可以在捆綁中提供數據庫和應用程序?

一種常見的方案是將h2.jar放在相對於您的應用程序的lib目錄中,並在JAR的清單中包含一個Class-Path條目,其中包含一個條目:

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

附錄:這個小項目包括JAR規范的鏈接和用於原位檢查清單的便利實用程序。

如果你使用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中。

通過進一步配置,您可以控制包含的內容和不包含的內容。

如果您想將數據庫本身放在jar文件中,那么這個解釋可能有所幫助: http//www.h2database.com/html/features.html#database_in_zip

這也在H2論壇的這個主題中討論過。

如果您正在使用maven構建項目,請查看maven-assembly-plugin(jar-with-dependencies)。 這將生成包含所有依賴項的單個jar。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM