1

私は確かに、継続的インテグレーションのアイデア全体に不慣れです。そのため、私は自分の ASP.NET プロジェクトを取得し、それを Jenkins にフィードして、Linux ボックスで NAnt と mono を使用して自動ビルドし、最終的にアーティファクトを Apache Archiva にデプロイして取得する方法を見つけるために Web を精査してきました。後でインストールなど。

私の問題は、Jenkins から Archiva へのアーティファクトのハンドオフを統合する方法がわからないことです。

だから、これが私が理解していることです:

  • Archiva は、あらゆるタイプのアーティファクトの保存に使用できます。.zipファイル(私が使いたいもの)、.jarファイルなど。
  • Jenkins は、NAnt を使用してソース コードをビルドし、Mono を .NET 4.0 プロジェクトに呼び出すことができます
  • Jenkins は、ファイルを適切なアーティファクトに圧縮することもできます

ここに私が理解していないものがあります:

  • .zipファイル (アーティファクト) を、Jenkins がビルドしたときに保存されている場所から Archiva リポジトリに取得するにはどうすればよいですか?

これが私が取り組んでいるものです:

  • Jenkins (1.502) サーバーと Archiva (1.3.4) サーバーが同じ Ubuntu 12.04 マシン上にある
  • NAnt (0.92) ビルド スクリプト
  • モノ (2.10)

私が何も知らないこと(しかし、役立つかもしれませんか?):

  • メイヴン
  • アイビー
4

2 に答える 2

3

Maven を使用してデプロイする Jenkins の別の「タスク」をセットアップします。

注: この作業を行うために、Maven について詳しく知る必要はありません。インストールする必要があります。以下のページで説明されているように構成する必要があり、その情報を使用してコマンド ラインから呼び出す必要があります。(さらに詳しく知りたい場合は、別の提案を使用できます。)

このページの情報を使用して、settings.xml をセットアップします。

http://archiva.apache.org/docs/1.4-M2/userguide/deploy.html

同じページに、コマンド ラインから Maven を実行する方法が示されています。これを使用するには、シェル スクリプトを実行し、ビルド タスクによって作成された場所から直接デプロイする Jenkins タスクを作成します。次に、デプロイを手動で実行するか、Jenkins ビルド タスクがエラーなしで終了したときにデプロイ タスクを実行するようにします。

なじみがないかもしれないことの 1 つは、Archiva/Maven の各ファイルの座標系です。

各アーティファクトには、グループ、アーティファクト ID、およびバージョンがあります。必要に応じて、分類器などを使用できます。

  • 通常、このグループは、会社のドメイン名を逆方向に並べたものと、内部の分類指標 (マイクロソフトの電話部門が作成した Web アプリの場合は com.microsoft.phone.web) を組み合わせたものです。
  • アーティファクト ID は、特定のアーティファクトの名前です。
  • バージョンは、バージョン文字列の通常の形式 (1.0a または 2.0-asl または 3.2.1) です。
  • 分類子は、ファイル拡張子 (zip、jar) を使用する方法と同様に使用されます。

これは、この説明の短いバージョンです。Google はここであなたの友達です。

Maven タスクを使用してこれを行うこともできます。pom.xml ファイルに関する Archiva ページの情報が必要になりますが、Google で「Maven デプロイ」を実行し、特定のケースでの方法を読む必要があります。デフォルトのケースは、アーティファクトが (ビルド マシン上の) ローカル Maven リポジトリにあり、そのリポジトリに必要な特定のファイルとフォルダー構造がある場合にデプロイされます。これは、アーティファクトを作成して「インストール」するときに、Maven がアーティファクトを配置する方法です。

于 2013-02-21T19:05:04.323 に答える
1

非 Maven ビルド用に Jenkins から Archiva への展開を容易にする可能性があるため、https ://wiki.jenkins-ci.org/display/JENKINS/Artifactory+Plugin のようなプラグインを作成できます(注: お手伝いはできますが、ATM を実行する時間はありません)。すべてを行います:-))。NAnt についてはよくわかりませんが、ant の場合は、アーティファクトを展開するための Maven ant タスクを作成します。http://maven.apache.org/ant-tasks/ を参照してください。

于 2013-02-22T13:26:52.103 に答える