読者です 読者をやめる 読者になる 読者になる

opamp_sando's blog

クソザコが割りと適当なことを書くためにある備忘録です。あとたまに普通の日記も書きます

ArchLinux server上にmaven repositoryを構築してみる

ということで、昨日やってた作業のメモ。
tomcat7上でNexusを動かす。 nexus -> http://www.sonatype.org/nexus/

注意:: ここに書いてる方法は自分がやってとりあえずうまくいった方法なので正しいかわからないし、もしかするとセキュリティなどの面で危ない場合もあるかもしれません...

ということで、参考までにということで。


まず、pacmanを使いtomcat7をインストールし使える状態まで持っていく必要がある。
この記事も例によって管理者権限が必要なコマンドは (sudo) を前に付けるよ。

tomcat7をインストール&セットアップ

$ (sudo) pacman -S tomcat7

でtomcat7をインストール。インストールが終わったら

$ (sudo) chown tomcat:tomcat /usr/share/tomcat7

で/usr/share/tomcat7ディレクトリの所有者とグループを変更する。

もし、ArchLinuxで使ってるjavaがJDK6だった場合、更に以下の記事の処理をする必要がある.
ArchLinuxのtomcat7でCannot locate Java Homeとなるとき - opamp_sandoの日記 ...でいいよね

最後に、tomcat7がOS起動時に自動的に走るようにする。
tomcatの起動は比較的遅いのでこれをするとOSのブートに時間がかかるようになる... しないならしないでもいいけど起動した後手動でtomcatを動かす必要があるよ

$ (sudo) vi /etc/rc.conf

などとして、rc.confを設定。以下のように "DAEMONS="という記述を見つけて括弧の中にtomcat7を追加する。

# DAEMONS
# -------
#
DAEMONS=(syslog-ng network crond sshd dbus tomcat7)

最後に起動する (以下のコマンドを実行してもいいしrebootしても起動する)

$ (sudo) /etc/rc.d/tomcat7 start

うまく行けば"http://localhost:8080/"にアクセスしてみると以下のように表示される


Nexusをインストール

上のURLからnexusのwarファイルをダウンロードしてくる。curlコマンドやwgetを使って以下のようにダウンロードできる。

$ curl -O http://www.sonatype.org/downloads/nexus-2.1.1.war

ダウンロードしたら"nexus-2.1.1.war"ができてると思うので、こいつをtomcat7で起動できるようにする。

tomcat7で動かすには"/var/lib/tomcat7/webapps"にこのファイルを持っていけばいい

$ (sudo) mv nexus-2.1.1.war /var/lib/tomcat7/webapps/nexus.war

名前はnexus.war等にするのをおすすめするよ。


これで自動でwarが展開され次のURLでnexusにアクセスできるはず。

http://localhost:8080/nexus/

デフォルトでログインはusername -> admin,password -> admin123 だったような気がする(違ってたらごめんなさい)
adminのパスワードは後で任意のものに変更したほうがいい気がする。そのへんはuserからいけるはず。

Maven Centralを有効にする.

http://hirobiro.dip.jp/pukiwiki/index.php?Maven2%2FNexus
を参考にして...
以下のように左の"Repositories"を選ぶと出てくる画面で"Central"を探し画像のように設定してsaveすると有効になるそうだ。

自分の作ったjarをアップロードしてみる

type:hostedのリポジトリーはPolicyとしてスナップショットとリリースと2つ選べるんだけど、なぜかスナップショットにすると400エラーが返ってきてアップロードできないので、リリースを選ぶ。
ということで、試しに"Releases"という最初からあるリポジトリにプロジェクトをアップロードする。

と言っても、自分Mavenもantも使ったことないのでgradleでアップロードする。


その前に、ユーザーを設定する。左から"Users"を探すと下のように"deployment"というユーザーがいるのでこいつのパスワードを確認しておく。(よくわからなかったからおいらは再設定で新しく設けた)

確認ができたら、アップロードしたいprojectのbuild.gradleファイルに以下のように書き込む。

uploadArchives {
    repositories {
            mavenDeployer {
                    repository(url: "http://user.server.url:8080/nexus/content/repositories/release/"){//要変更
                            authentication(userName: "deployment",password: "password")//要変更
                    }
            }
    }
}

[install.repositories.mavenInstaller, uploadArchives.repositories.mavenDeployer]*.pom*.whenConfigured { pom ->
        pom.project{
                inceptionYear '2012'
                packaging 'jar'
        }
}

ここの書き方は以下の記事を参考にさせていただきました。
http://wadahiro.hatenablog.com/entry/2012/07/24/234727


ここまでかけたら保存して

$ gradle uploadArchives

を実行してうまくいけばアップロードされる。

終わり

という流れ。いろいろ間違えてるかもしれない・・・何か問題があればご指摘くださると助かります。

apacheとか使ってもできるみたいなんだけど、そのへんの知識が皆無なのでいつもapacheの設定ができずにつまずいてしまう...というところに颯爽と現れたこいつは...
apacheの勉強をいつもしようとは思うけどいまいち良い資料が見つからない・・・本当に初心者向けとなるとやっぱ書籍を買うのが速いのかなぁ・・・ お金ないお。

とりあえず今度はSCM Managerを使った、git,mercurialなどのprivate or publicなリモートリポジトリでも書こうかな・・・明日くらいに。

Firefox ブラウザ無料ダウンロード