私がJavaで継続的に配信するために構築できるものは何ですか?

私がPythonを使用していたのであれば、良いリポジトリ統合とスクリプティング機能を備えた継続的な配布のための素晴らしいインストーラとして pip を使用したいと思うでしょう。 私は継続的な展開で私にとって有用なjavaに似たものを持っていますか?

誰かが私がjavaで完全に継続的に展開する方法をお勧めしますか?

私は複雑な設定とデータベースを持つ巨大な複数のクラスタを持つ複数のサーバを持つつもりです.NOSQL(いくつかのプロジェクトにはmavenを使用していますが、他のものはダウンロードしたpacakgesです)などなど...誰もがそのための勧告をしていますか?

もう一度私はpipが非常に素晴らしいインストーラであり、誰かが ubuntu juju で多分経験を持っていると助けてくれると思いますか?

しかし、もし私がubuntu jujuを使用すると、私はcentosではなくubuntuベースのサーバーを使用しなければならないということになります。

2
追加された 著者 oers,
カスタムスクリプトやカピストラ/ファブリックのようなものと連携したCIサーバが役立つはずです。 この質問をご覧ください。
追加された 著者 aishwarya,

3 答え

JavaアプリのビルドとJavaアプリのデプロイの間には、一種の明るい線があります。 JavaでのCIの構築は、ビルドスクリプト(Ant、Maven、Gradleなど)、継続的なビルド(Jenkins、Go、Anthillなど)、リポジトリ(Nexus、Artifactoryなど)のさまざまなツールで簡単に行えます。図書館の依存関係管理はJavaのためのヘアボールなので、MavenやIvyを使ってください。

展開はずっと荒く、成熟していない世界です。環境は潜在的にはるかに複雑で、しばしばリレーショナルデータベースのような面倒なJava以外のものも含まれます。スクリプトを手書きしたり、ControlTierやCapistranoなどを使うこともできます。

5
追加された

私はpipが何をしているかを完全にはっきりさせていませんが、CI/CDのtoolchainはここにあります

ビルドツールが必要です:

  • Maven(依存関係をダウンロードしてあなたを夢中にさせるなど、たくさんのことをします)
  • ANT(xml括弧で死ぬまであなたを突き刺すでしょう)
  • Gradleと他の人たち(ANTを含むほとんどすべての人が、Ivyを使って依存関係をリポジトリからダウンロードすることができます)

CIサーバーが必要です

  • ジェンキン
  • さまざまな商業的オプション(Teamcity、Bamboo ...)

アプリケーションを配備するには、配備する部分に何かが必要です。 これは実際に使用するビルドツールに依存します(デプロイメントを実行できるはずです)。 Mavenにはこのアフリカのためのいくつかのプラグインがありますが、私はあなたのアプリケーションサーバーとビルドツールのために、あなたの特定の必要性のための解決策を見つけるためにgoogleする必要があると思います。

3
追加された
おかげで、あなたはgradle対buildrを精巧にすることができますか?
追加された 著者 Jas,
申し訳ありませんが、それはstackoverflow.comの大きな質問になります
追加された 著者 Jens Schauder,

おそらくあなたが探しているのは、展開パイプラインを構築することです。動画の例はこちら: http://www.youtube.com/watch?v=6CEQOuHM86Y それを達成するには複数の方法があります。病気が私に好まれるものを教えてくれます。

必要なコンポーネント:

  • VCSサーバー(SVN、Git)
  • CIサーバー(Jenkins、Hudson、TeamCity)
  • ビルドツール(Maven、Ant、Gradle)
  • アーティファクトリポジトリ(Artifactory、Nexus)
  • デプロイメントツール(Rundeck、Puppet、Deployinator、Capistrano)
  • ターゲット環境(Tomcat、JBossのようなアプリケーションサーバ)

ワークフロー:

1)CIサーバーがVCSサーバーの変更をポーリングする

2)変更が見つかった場合(つまりコミット)、ジョブの実行を開始し、アーティファクトを取得します(CIサーバーがテストをコンパイルして実行します)。 CI Serverは内部的にMavenのようなビルドツールを使用します。

3)CIサーバがアーティファクトをArtifactリポジトリにアップロードする

4)展開ツールは、アーティファクトリポジトリを読み込み、展開するアーティファクトのリストと、Developer/Opsが両方の組み合わせを選択して、選択したサーバにアーティファクトを展開できるターゲット環境のリストを提供します。

ツールを選ぶ瞬間のいくつかの基準を考慮に入れてください。あなたが(200以上のターゲット環境のような)非常に大きなインフラストラクチャを持っている場合、人形劇のような堅牢なソリューションが理にかなっています。あなたが適度なものを持っているなら(10個のターゲット環境を考えましょう)、Rundeckで十分でしょう。また、リストされたツールのいくつかは無料ではないことを考慮してください(たとえば、Puppet Enterpriseは10ノードを超えて無料ではありません)。

2
追加された