【maven】帰ってきたnexusの設定いろいろ
アカウントの設定
Security > LDAP Configurationで設定する
LDAP認証
ユーザはLDAPアカウントでログインできるようにする。
LDAPのログイン条件は、こんな感じ
$ldapsearch -x -h xxx.xxx.xxx.xxx "(&(uid=*)(description=maven))"
LDAPアカウントを持っていればOKではなくて、descriptionでフィルタをかけている
ユーザとグループのマッピング
設定内容はこんなかんじ
個別アカウントの設定
CIツール経由でmvn deployする場合等を想定して、ユーザアカウントとは別でアカウントを作成する
Security>Usersから
「Nexus User」を選択してアカウントを作成する。
roleの制御
さてはて。作成したユーザに権限(role)を設定する
Security>Rolesから、権限の指定をできる
結構細かく権限の付与をすることができる
roleのカスタマイズ
「Nexus Role」を選択
「Add」から好きなのを組み合わせる。
今回は、deployの権限と、artifact uploadを組み合わせた権限を作ったお
LDAPで紐づけたアカウント群にroleを付与
「External Role Mapping」を選択する
LDAPで設定されているdescriptionたちが沢山出てくる(なんか色々あれなので一部モザイク・・)
これはユーザ作成時にGroupMappingでdescriptionを指定したから、出てくる。
今回はmavenを選択して、descriptionがmaven(本当はhogehoge.mavenだけど)に該当するユーザに権限を付けていく
最初はこんな感じで作成されるから「add」を選択して、権限つけて「save」すれば完成
今回はあらかじめ作成しておいた、カスタマイズしたroleを追加した。
ポートの変更
nexus.propertiesで変更できる。
${NEXUS_HOME}/nexus/conf/nexus.properties
でも80とかにはできないお。nexusさんjetty使ってるので。
リポジトリの設定
リポジトリは大枠で3つ管理するイメージ
nexusに直接あげた内部ライブラリ
標準で用意されている「Releases」と「Snapshot」を利用する。
nexusにログインして直接アップロードしても良いし、pom.xmlに設定してアップロードしても良い。
アップロードは、ユーザにアップロード用のroleが設定されている必要がある
3rdpartyのライブラリ単体
標準で用意されている「3rdparty」を利用する。
但し、なるべくライブラリ単体ではなくて、リポジトリが存在するならそれを指定すべき。
外部mavenリポジトリの登録
外部のmavenリポジトリは、proxyリポジトリとして登録する
例えば、Springframeworkのmavenリポジトリを登録する場合
http://maven.springframework.org/release/
Views/Repositories>Repositoriesから
設定内容
- Repository id:org.springframework.maven.release
- Repository Name:Spring Maven Release Repository
- Repository Policy:release
- Remote Storage Location:http://maven.springframework.org/release/
Repository Policyは登録するリポジトリに合わせる(snapshotとか)