Maven3インターナル(社内)リポジトリーの確認作業

必要に迫られてMaven3の動作確認を実施。内部(社内/インターナル)リポジトリーの設定でけっこうはまったので書いとく。

こちら
http://maven.apache.org/

からZIP形式をダウンロードしてローカルディスクに解凍。JAVA_HOMEとbinへのPATH設定が必要なので、Windowsのコントロールパネルから設定。これでコマンドプロンプトからは利用可能に。M2Eclipse(Eclipse用のMaven2公式プラグイン:2015年8月現在)も使いましたけど、ここでは関係ないのでパス。

セントラル・リポジトリー(Apacheで管理しているインターネット上のJAR保管庫)からの依存JARの取り込み、コンパイル・ビルドなどを一通り確認したあと、社内リポジトリーの動作確認をしようかと思っていろいろハマりました。リポジトリーは、Ubutu Linux 14.04上にApache2をインストールして作るつもりで作業しました。

WebDAVで確認しようと思ったのですが、なんだかうまくいかず。最新のWindowsでは、ファイル共有の分部でSSLとダイジェスト認証が最低ラインらしく、そのへんがひっかかってWebDAVの動作確認がうまくいかないのが原因のような気がしました。

よく考えれば、Linuxには普段からSSH/SFTPでアクセスしているわけで、これでアクセスできるはずです。で、そちらでアクセスすることを考えて設定を試みたのですが、なかなかよい組み合わせの設定がみつからず、2時間くらいかけてたどりついて設定がこちらです。

前提として、Maven3を動作させるパソコンからWinSCP等で、該当のホストにアクセスできるところからはじめます。ここでは、ホスト名:uLinux14、ユーザーID:username、パスワード:passwordです。

まず、プロジェクトのpom.xml の、<build>の下に以下を追加。これは、ssh/sftpプロトコルをサポートするためのモジュールを「Maven3くん、必要に応じて自分で取ってきてね」と依頼するための設定です。

<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
</extension>
</extensions>

<project>の下に以下を追加。これは、「このプロジェクトは、このリポジトリーにデプロイされるからぁ」という設定です。uLinux14というホストの/home/username/maven2というフォルダーが、リポジトリーである、という設定になっています。

<distributionManagement>
<repository>
<id>uLinux14</id>
<url>scp://uLinux14/home/username/maven2</url>
</repository>
</distributionManagement>

.m2\settings.xml はこんな感じ

<?xml version="1.0" encoding="UTF-8"?>
<settings>
<servers>
<server>
<id>uLinux14</id>
<username>username</username>
<password>password</password>
</server>
</servers>
</settings>

pom.xml の<repository><id>と、settings.xml の<server><id> が一致するものの下にあるクレデンシャルが使われます。

以下のコマンドを実行すると、最新版がリポジトリーにデプロイされます。

mvn deploy

あとは、こちらのディレクトリーをApache等で見れるようにすればMaven3社内リポジトリーの完成です。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中