[[DeployToMaven2RepoRemote]] #contents * 概要 [#h278a94f] - 対象者: Seasar.orgにアカウントを持っているコミッタ - 利用申請: 不要 (プロジェクト開設時に自動作成されます) - 関連URL: http://maven.seasar.org/ このページでは、maven.seasar.orgのMaven2レポジトリへリリース物をWebDAV経由(HTTPS通信)でデプロイする方法について記述します。その他のMaven情報については MavenInformation を参照してください。 - 2007年3月10日(土) 25:30以前の過去のデプロイ方法 -- [[SCPを利用したデプロイ方法>Maven2DeployToRepoRemoteWithSCP]] --- 現在は利用できません。 *準備 [#vb33727e] **初回のみ行うこと [#h9722e92] 1度行えば良いモノ。 - Maven2をインストールする。 -- 参照: http://maven.apache.org/download.html - Seasar.orgのコミッタアカウントを取得していること。 **毎回必要なこと [#s9488b06] デプロイ時に毎回行うモノ。 - pom.xmlの"version"をこれからデプロイする番号へ変更しているか確認すること。 -- (パッケージングにantを使用している場合はbuild.xmlも) * プロジェクト設定 (pom.xml) [#m0b97a67] # s2containerのpom.xmlを参考にしてください。 ** <build/> [#ja8b2e26] &color(#000,#bdf){SCP方式から移行する際にこのように変更する必要有り}; WebDAV経由でデプロイするために必要なモジュール定義を追加します。 <build> ... 省略 ... <extensions> <extension> <groupId>org.apache.maven.wagon</groupId> <artifactId>wagon-webdav</artifactId> <version>1.0-beta-2</version> </extension> </extensions> </build> ** <distributionManagement/> [#f1ac58d1] &color(#000,#bdf){SCP方式から移行する際にこのように変更する必要有り}; pom.xmlにSeasarプロジェクト用のデプロイ先リポジトリを記述します。このリポジトリ設定はurl含めて全プロジェクトで共通です。 <distributionManagement> <repository> <uniqueVersion>false</uniqueVersion> <id>maven.seasar.org</id> <name>The Seasar Foundation Maven2 Repository</name> <name>The Seasar Foundation Maven Repository</name> <url>dav:https://www.seasar.org/maven/maven2</url> </repository> <snapshotRepository> <uniqueVersion>true</uniqueVersion> <id>maven.seasar.org</id> <name>The Seasar Foundation Maven2 Snapshot Repository</name> <name>The Seasar Foundation Maven Snapshot Repository</name> <url>dav:https://www.seasar.org/maven/maven2-snapshot</url> </snapshotRepository> </distributionManagement> - <repository/> へのデプロイ結果は http://maven.seasar.org/maven2/ 以下に対応 - <snapshotRepository/> へのデプロイ結果は http://maven.seasar.org/maven2-snapshot/ 以下に対応 -- pom.xmlの<version/>で X.X.X-SNAPSHOT と -SNAPSHOT を付けると自動的にこちらにアップロードされます。 *環境設定(settings.xml) [#lffd762c] &color(#000,#bdf){SCP方式から移行する際にこのように変更する必要有り}; ${user.home}/.m2/ に settings.xml というXMLファイルを作成します。 <?xml version="1.0" encoding="UTF-8"?> <settings> <servers> <server> <id>maven.seasar.org</id> <username>コミッタアカウントのユーザ名</username> <password>コミッタアカウントのパスワード</password> </server> </servers> </settings> ※ パスワードを記述するため、settings.xmlの取り扱いには気をつけてください。 * デプロイ実行 [#vf3421b4] pom.xmlが置かれているディレクトリで次のコマンドを実行してください。 mvn clean source:jar javadoc:jar deploy -DupdateReleaseInfo=true ※s2container, s2jsf, s2dao, teedaはpom.xmlで設定してありますので、↓のコマンドでOKです。 mvn clean deploy 成功すると、リモートレポジトリへデプロイされます。 (クリーンビルド → 単体テスト実行 → jarファイル作成 → Maven2リモートレポジトリへのデプロイ、が行われます。) 配布zipアーカイブの作成にはantを使用しているので、続けて ant dist してzipを作成してください。 ※zip等の配布アーカイブを作成する場合は、Maven2リポジトリへデプロイしたjarを配布アーカイブに含めるように気をつけてください。(再度ビルドしないように) * デプロイ済みの不要なファイルの削除方法 [#re18c157] デプロイ済みの不要なファイルを削除するには、WebDAVクライアントを使って削除します。下記にWindows XPでの例を示します。 + マイ ネットワークを開き、「ネットワーク プレースを追加する」を選択します。 #ref(webdav01.png) + 追加ウィザードで、「別のネットワークの場所の選択」を選択します。 #ref(webdav02.png) + インターネットまたはネットワークのアドレスにリポジトリのURLを入力します。 -- リリースリポジトリ: https://www.seasar.org/maven/maven2/org/seasar/プロジェクト名 (プロジェクト名はgroupIdでの指定、s2hoge -> hoge) --- mavenプロジェクトのコミッタの場合、ルートリポジトリ ( https://www.seasar.org/maven/maven2/ )から指定できます。 -- スナップショットリポジトリ: https://www.seasar.org/maven/maven2-snapshot/org/seasar/プロジェクト名 (プロジェクト名はgroupIdでの指定、s2hoge -> hoge) --- mavenプロジェクトのコミッタの場合、ルートリポジトリ ( https://www.seasar.org/maven/maven2-snapshot/ )から指定できます。 #ref(webdav03.png) + 認証を求められるので、コミッタアカウントの情報を入力します。 #ref(webdav04.png) + 適当な名前を入力して、このネットワーク プレースへのショートカットを作成します #ref(webdav05.png) + 追加ウィザードを完了させます。 #ref(webdav06.png) + 削除したいファイルを選択し削除します。 -- 削除できるのは、所属プロジェクトのファイルのみです。所属していないプロジェクトのファイルは権限が足りないので削除できません。 #ref(webdav07.png) * エラー集 [#n90e7371] ** 401 Unauthorized [#n5b91412] [INFO] Error deploying artifact: Failed to transfer file: https://www.seasar.org/maven/maven2/org/seasar/... Return code is: 401 Unauthorized - settings.xml ファイルがない、もしくは、ファイル名が誤っている - ユーザ名、もしくは、パスワードが間違っている ** 無視して良いエラー [#t831a16a] *** HTTP/1.1 401 Authorization Required [#td79fca8] 情報: Already tried to authenticate with 'maven webdav repository' authentication realm at www.seasar.org, but still receiving: HTTP/1.1 401 Authorization Required 上記のエラーが表示されても最後にBUILD SUCCESSFULと最後に表示されている場合は、このエラーは無視して構いません。これは、デプロイするプロジェクトより上位ディレクトリである org/seasar 部分のディレクトリを触ろうとした時に表示されるエラーで、実際にプロダクトをデプロイする際に成功している場合は、最後にBUILD SUCCESSFULと表示されます。 *コメント [#ha81887e] #comment