質問

私は Capistrano の大ファンですが、Java 専用ショップ用の自動展開スクリプトを開発する必要があります。Ant と Maven を調べてみましたが、Capistrano のようにリモート管理にあまり対応していないようです。単純にアプリケーションを構築してパッケージ化することに重点を置いているようです。もっと良いツールはありますか?

役に立ちましたか?

解決

Java Web アプリケーション用の Capistrano のようなアプリケーションは存在しないと思いますが、アプリケーションのデプロイに Capistrano (または Fabric などの代替手段) を使用できないわけではありません。すでに述べたように、Maven は主にビルド​​アウト/依存関係管理アプリケーションであるのに対し、Ant は GNU Make の代替として機能します。

Java Web アプリケーションは .war コンテナのおかげで外部ライブラリへの依存度が低いため、(アプリケーション サーバーに応じて) 単純な HTTP PUT リクエストを実行するのと同じくらい簡単にアプリケーションをデプロイできます。

ただし、追加の手順が必要な場合は、 ファブリック これまでのところ、Capistrano は非常にうまく機能しており、Capistrano は汎用のシェルコマンド、put および get 操作も提供していると思います。したがって、すでに持っているものがすでに機能する場合は、代替品をそれほど長く探す必要はありません:-)

他のヒント

controltier( http://controltier.org を参照)があなたが探しているものだと思います。ただし、controltierはJavaのデプロイ専用に使用する必要はありません。

このドキュメントの抜粋を参照してください(を参照)コントロール層のドキュメント):

  

ControlTierはCapistrano、Fabric、またはFuncと同じですか?

     

最も基本的な概念では、   ControlTier、Capistrano、Fabric、および   Funcも同様のツールです。結婚した   Capistrano、Fabric、   およびFuncの基本的なコマンドディスパッチ   フレームワーク。

     

ただし、ControlTier、   デザイン、これらをはるかに超える   他のツールが提供します。自動化   ライブラリとWebベースのツール   ControlTierが提供するのは、   完全自動化システムを構築できます   企業による使用準備完了または   大規模なWeb運用チーム。   次のような機能もあります   エラー処理と集中ログ   それはただ他の範囲ではありません   コマンドディスパッチツール。

     

また、CapistranoはRubyベースのツールです   主にニーズに焦点を当てています   Ruby on Railsコミュニティの   ControlTierは、Javaで記述されていますが、   Javaを知っている必要はありません   これを使って。実際、何でも使用できます   あなたがいるスクリプト言語   快適(ルビーを含む)。   ControlTierは言語としての試み   およびプラットフォーム(Linux、Unix、Windows、   など)可能な限りニュートラル。

私の仕事では、すべてのJavaアプリケーションを展開するためにCapistranoのみを使用しています。間違いなく可能です。

Capistranoは、すべてのWeb基本アプリケーションをデプロイできました。異なる言語の展開はほぼ同じです:

  1. コードの更新
  2. 本番サーバーにコードをプッシュ
  3. この展開の構成ファイルを準備します
  4. サーバーを再起動します。 (thin、nginx、tomcat)

私の会社では、Capistranoを使用してjava、Vuejs、php、ruby、pythonアプリケーションをデプロイしています。

興味深いのは、レポジトリに関するCapistranoのアイデアは、SCM(ソース管理マネージャー)を扱っていることを前提としていることです。サーバー上の構造と関連するアプリケーションのバージョン管理は、アプリケーションソースで機能します。これはインタプリタ言語にとって意味があります。

ただし、Javaのようなコンパイル言語では、バージョン管理と分岐はデプロイの前に行われ、アプリケーションがコンパイルおよびビルドされるまでに、ソース管理システムはすでに残されており、結果はバージョン管理されたjarまたはtarに含まれますアプリケーション。通常、このtarball(jar + config)は、NexusやArtifactoryなどのMavenアーティファクトリポジトリに公開されます。

驚くべきことに、このアーティファクトリポジトリはCapistranoリポジトリにうまくマッピングされます。 SCMの代わりに、このtarballをSCM(バージョン管理されるソース)として扱うことができます。これを念頭に置いて、 Mavenアーティファクトリポジトリ用のCapistrano SCMプラグインを実装しました。それは新しいですが、かなりうまくいきます。

RubyプロジェクトとJavaプロジェクトを1つのツールで統合し、最も重要なこととして、CapistranoのSSHKitとrakeのパワーをJavaプロジェクトにもたらします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top