私はあなたのすべてが自動的に起こるしたいとアプリの動作を持つようにシステムを設定する方法、各ユーザ/マシンの管理者に指示するにはあまりにも熱心じゃないことを前提としています。私はあなたが望むかもしれない方法では可能ではないと恐れています。
スタンドアロンデータベース解決策Kayamanは、あなたのケースでは最高の解決策であるかもしれませんが、それ以上のことを知らずに言うのは難しいかもしれません。
ただし、ここにはmaven
を使用することに関するいくつかの側面があり、いくつかの注意事項では困難が考えられます。私は 休止を介して、例えば、データベース・アクセスを使用するアプリケーションがある場合
は、私は、例えばMySQLのコネクタからJava MySQL用、ojdbc用のために、 対応するデータベースドライバを表す依存関係を追加する必要がありますOracleなど。
はい。また、についてはDriver
と関連しているかもしれません。依存関係を追加するだけでなく、いくつかのpropファイルまたはpersistence.xmlをフィルタリングすることもあります。それはmaven
とそのプラグインの仕事かもしれません。しかしそれでも、それを処理するためには、それぞれの可能なdbの代替案とmavenのプロファイルに関する知識が必要です。
しかし、プログラムを別のマシンで実行したい場合は、 はどのデータベースを使用しているのかわかりません。これを解決する一般的な方法は何ですか? どのようなオプションがありますか?すべての可能なドライバを の依存関係としてインポートするだけですか?よりエレガントな方法がありますか?
すべてのプログラムには依存関係がある。それはDBに関係しているかどうか。ある意味では、他の回答が示唆しているように、これはmaven
固有ではありません。 JDBC
ドライバのレベルで実際に開発したい場合は、あらゆる環境の要件を認識する必要があります。私は信じている - -
あなたのこの特定の問題が何かあるようなもの開発する動機です:
注1にも同様の命名ODBC & JDBCはまったく異なるレベルにあります(私は、実際には主要な問題であるかもしれないJDBCドライバがどのように見つかったのかを意味します...)
注2 JNDIは何が必要に応じて、大きな助けになり、最終的に行うことを決定することができますデータソース
しかしmaven
に限定されるものではありません。しかし、ODBC/JNDIを使用することができれば、それほど大きな役割はありません。
すべての可能なドライバをバンドルすると、かなり無駄ではなく、ライセンスの問題も発生します。 – fvu
ドライバを ' '依存関係に設定すると、ランタイム環境が適切なドライバを決定(提供)することを意味します。問題は、ターゲット言語のタイプ(oracle、mysql、mssql、postgresqlなど)を決定する必要があることです。 。)これは、これを構成する異なるプロパティファイルを持つ必要があることを意味します。 –
khmarbaise
複数のデータベースをサポートする必要がある製品を構築することは、ORMを使用しても大変な作業です。私は経験から2つのシステムがPITAであることを知っています。あなたはどれくらいサポートしなければならないのですか?それぞれのドライバを含めることはできませんか? – MarioDS