別のOSSプロジェクトを始めていて、Maven2のリポジトリが欲しくなりました。
sourceforge.jp上にMaven2のリポジトリを作成できると噂で聞いていたので、早速ぐぐってみたらid:tonocchiさんのブログ嫁でしたw
mvn deploy
ッてやったら、勝手にリポジトリを作ってくれるので、そんな面倒い物じゃないです。あと、前回のwebサイト航海用の設定が既にあるので、それらを転用します。こんな感じにpomに記述して、mvn deployすれば完了です。
<repository>
<uniqueVersion>false</uniqueVersion>
<id>website</id>
<url>scp://shell.sourceforge.jp/path/to/repository</url>
</repository>
どこまで使えるのかわかりませんが、なるべく自前の鯖では運用しないようにしたいので借用ということで、手探りで環境構築してみることに。
shell鯖のどこかに置けばよいのかな〜。
まず、sshできる環境を作らないといけませんね。
の手順を実行。
MacOSXで以下のコマンドを実行しました。
$ ssh-keygen -t dsa
公開鍵として~/.ssh/id_dsa.pubが生成されているはずなのでこれを改行が入らないようにユーザ設定から登録する。
$ cp ~/.ssh/id_dsa.pub ~/
などとして、テキストエディットで開いて全選択+コピーではりつけですね。
次にシェルサーバにログイン。
シェルサーバーが提供するサービスとその利用方法
$ ssh shell.sourceforge.jp -l sourceforgeのアカウント名
パスワードは聞かれずにそのままログインできるはず。ログインするとカレントディレクトリが/home/usersのホームディレクトリになっているはず。
プロジェクトのディレクトリを探してみる。/home/groupsの下ですね。
j5ik2o@sf-usr-shell:~$ cd /home/groups/x/xx/xxxxx/ j5ik2o@sf-usr-shell:/home/groups/x/xx/xxxxx$ ls -al total 16 drwxrwsr-x 4 dummy xxxxx 4096 Apr 20 2009 . drwxr-xr-x 34 root root 4096 Sep 24 10:11 .. drwxrwsr-x 2 dummy xxxxx 4096 Apr 20 2009 cgi-bin drwxrwsr-x 4 dummy xxxxx 4096 Oct 24 22:24 htdocs
http://xxxxx.sourceforge.jp/のドキュメントルートがhtdocsですね。*1
とりあえず、maven2のリポジトリ用にディレクトリを作っておきましょう。
j5ik2o@sf-usr-shell:/home/groups/x/xx/xxxxx$ cd htdocs j5ik2o@sf-usr-shell:/home/groups/x/xx/xxxxx/htdcos$ mkdir maven2 j5ik2o@sf-usr-shell:/home/groups/x/xx/xxxxx/htdcos$ mkdir maven2-snapshot
http://xxxxx.sourceforge.jp/maven2/
http://xxxxx.sourceforge.jp/maven2-snapshot/
が見えたらOKです。
次にpom.xmlの設定ですが、id:tonocchiさんのブログを参考に編集。
具体的には以下のような感じ。リポジトリを参照するほうと、デプロイする側がURLが違うので注意が必要。
<repositories> <repository> <id>xxxxx.sourceforge.jp</id> <name>Xxxxx Maven Repository</name> <url>http://xxxxx.sourceforge.jp/maven2</url> </repository> <repository> <id>xxxxx.sourceforge.jp</id> <name>Xxxxx Maven Snapshot Repository</name> <url>http://xxxxx.sourceforge.jp/maven2-snapshot</url> </repository> </repositories> <!-- 中略 --> <distributionManagement> <repository> <uniqueVersion>false</uniqueVersion> <id>shell.sourceforge.jp</id> <name>Xxxxx Maven Repository</name> <url>scp://shell.sourceforge.jp/home/groups/x/xx/xxxxx/htdocs/maven2</url> </repository> <snapshotRepository> <uniqueVersion>true</uniqueVersion> <id>shell.sourceforge.jp</id> <name>Xxxxx Maven Snapshot Repository</name> <url>scp://shell.sourceforge.jp/home/groups/x/xx/xxxxx/htdocs/maven2-snapshot</url> </snapshotRepository> </distributionManagement>
さらに、Maven2でshell.sourceforge.jpにログインするための設定を行います。
~/.m2/settings.xmlに以下の項目を追加してください。
privateKeyタグでは、先ほどssh-keygenで作成した秘密鍵の方を指定してください。
passhraseはsourceforgessh-keygenで指定したパスワードです。
<?xml version="1.0" encoding="UTF-8"?> <settings> <servers> <server> <id>shell.sourceforge.jp</id> <username>j5ik2o</username> <privateKey>/Users/j5ik2o/.ssh/id_dsa</privateKey> <passphrase>XXXXXX</passphrase> </server> </servers> </settings>
$ mvn deploy
これでsourceforge.jp上のリポジトリにデプロイできるはずです。ご参考までに。
*1:xxxxxのあたりはプロジェクト名。読み替えてください。