J'utilise la base de données H2 pour une application de bureau en mode intégré. Lorsque je compresse l'application dans le fichier jar, le fichier de base de données est omis. Ainsi, quand je cours MyApplication.jar rien ne fonctionne. Quelle est la bonne façon d'incorporer/inclure/connecter le fichier h2.jar avec MyApplication.jar? Ou peut-être existe-t-il une autre façon de fournir la base de données et l'application dans le bundle?Comment intégrer la base de données H2 dans un fichier jar remis au client?
Répondre
Un projet commun est de mettre h2.jar
dans un parent de répertoire lib
à votre application et inclure une entrée Class-Path
dans votre manifeste JAR avec une entrée pour elle:
Class-Path: lib/h2.jar lib/…
Addendum: Ce petit project comprend un lien vers le JAR specification et un utilitaire pratique pour examiner le manifeste in situ.
Si vous utilisez maven pour créer votre projet, regardez maven-assembly-plugin (jar-with-dependencies). Cela produirait un pot unique contenant toutes les dépendances.
Si vous utilisez Maven pour construire votre projet, utilisez simplement maven-shade-plugin ... d'excellents résultats et un bon contrôle, je l'ai beaucoup utilisé.
Pour intégrer toutes vos dépendances vous écrire quelque chose comme:
<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>
Alors avec juste un « mvn package » normal, vous aurez tous les pots vos dépendances incluses dans votre pot d'application.
Avec une configuration supplémentaire, vous pouvez contrôler ce qui est inclus et ce qui ne l'est pas.
Si vous voulez mettre la base de données elle-même dans votre fichier jar, cette explication pourrait aider: http://www.h2database.com/html/features.html#database_in_zip
Ceci est également discuté dans this thread in the H2 forum.
Comment créez-vous ce fichier JAR? Utilisez-vous un outil de construction tel que Maven ou simplement lancez jar depuis la ligne de commande? – Anon
J'utilise Eclipse. Il y a une option pour exporter dans le fichier jar, donc j'utilise cette option. – bancer
Je recommande de prendre le temps d'apprendre Maven: http://www.sonatype.com/books/mvnref-book/reference/public-book.html - à long terme, cet investissement va se rembourser plusieurs fois. – Anon