2017-02-03 9 views
2

基本的には、プログラムの本体であり、それぞれの個別の要件に基づいて別々のライブラリ/モジュール/クラスを追加できるようにするための基本コードを持っています'顧客'。私がプログラムをセットアップすると、バージョン(base、customer1、customer2)が選択されます。これは、Tomcat7 Apacheサーバ、Java1.8上で実行されているWebbedベースのサービスです。1つの基本コードと複数のバージョンを持つJavaプログラミング

これが可能ですか?

編集:一部のカスタマイズは、新しいフィールド、新しいメソッド、または新しいクラスと同じくらい小さなものです。

+0

*プログラムをセットアップするときにバージョン*を選択します。実行時またはデプロイメント時にこれを選択することを意味しますか? – CKing

+0

@CKing Deploymentが最適なのですが、バージョンを選択するだけで簡単にしたいと思います。インストーラのようなものでしょうか? – AlyxEsson

答えて

0

私が間違っている場合は正しいが、あなたは特定の顧客のためにカスタマイズするために機能を追加することができますあなたのシステムにいくつかのコアコードをしたいように聞こえる。

カスタマイズは、apache felixやequinox(Eclipseに組み込まれています)などのOSGIフレームワークを使用してコードを記述することで実現できます。これらのフレームワークは、モジュールを追加したり削除したりすることを可能にする表面上プラグインのフレームワークですが、仕様に組み合わせることができる別個のバンドルとしてコードを記述することもできます。 hereは、分点法の使用に関する優れたチュートリアルです。

カスタマーごとのカスタム化のタスクを自動化することに関しては、Chefのようなものを調べる価値があります。これは、apacheやmysqlのようなサーバーソフトウェアの自動構成に使用されます。顧客ごとに個別のカスタマイズが可能です。いろいろなOSGIプラグインが書かれていれば、それらをまとめて実行するスクリプトを書いてから、カスタマイズしたソフトウェアを顧客に送ることができます。

+0

私はwebservice上でそれをカスタマイズする必要はありません、現在、私はコアのコードと、この顧客のためのカスタマイズと重複したコードがあります。ですから、私がコアコードを変更するときは、すべての複製にも変更を加える必要があります。それは私がカップルを持っているときには問題ありませんが、例えば50歳以上の場合はそうではありません。私は、コアコードと、プラグインやオーバーライドクラスのようなカスタマイズを行うことができます。 – AlyxEsson

+0

あなたのニーズをよりよく反映するように投稿を変更しました。 –

+0

シェフは探しているもののようですが、Rubyを使っています。私のコードはJavaで、私は一緒にコードをコンパイルするためにそれを使用することはできますか? – AlyxEsson

関連する問題