2016-05-17 12 views
1

Mavenを使用してJavaアプリケーションを作成しています。私は実験を実行するために、リモートの強力なサーバーにアプリケーションを展開する必要があります。私がこれを行うために考えた最も簡単な方法は、Mavenシェーディングプラグインを使用してjar-with-dependenciesを構築し、リモートサーバーにuber-jarをコピーすることでした。しかし、このジャーは100MB以上と大規模で、私たちのネットワーク経由で送信するには時間がかかります。ほとんどのjarファイルは重い依存関係(Scala、Spark、Jetty)で構成されており、コードを変更するとほとんど変わりません。Mavenを使用したリモートサーバーへのJavaアプリケーションのデプロイ

Mavenを使用してリモートサーバーに依存関係をインストールし、サーバーに依存関係のないもっと小さなjarファイルのみを送信できますか?

私はサーバーにSSH接続しており、SCPプラグインを使用できます。

+1

サーバーが強力なのはなぜですか? –

+0

あなたは "他のすべて"のウーファーを作り、それを一度送信してから、リモートサーバーでクラスパスに "変更可能な"ものを追加することができます... http://stackoverflow.com/questions/219585/set-multiple-jars-in-java-classpath – Mainguy

+0

@YegorChumakov次にコードをサーバーに送信する必要があり、それは冗長なステップです。私は開発マシンとして使用せず、コードを変更するたびにgitを取得したい場合 –

答えて

0

あなたの質問にはJettyがありますので、私はあなたのアプリケーションサーバーがJettyだと仮定しています。私は共通ライブラリのjarファイルをサーバーにアップロードしてから、jettyクラスのパスに含めようとします。これは1回の作業になります。たぶん、これは役に立ちます:How do I place jars in jetty/lib on the jetty classpath?

この後、mavenを使ってアップロードして展開できる「シン」戦争/ jarを構築できます。

+0

例としてJettyが挙げられています。また、私は桟橋を使わない場合もあります –

+0

解決方法はまだアプリケーションサーバーに適用されます。サーバーのlibディレクトリにサードパーティのjarファイルをアップロードします。また、Mavenを使用して、アップロードしてデプロイできる "シン"戦/ jarを構築します。 – chrisl08

関連する問題