共有ライブラリを管理するために Sonatype の Nexus Repository Manager OSS を使用する ( その17 )( Nexus へコンポーネントを登録する専用 User を作成する )
概要
- 今回の手順で確認できるのは以下の内容です。
- admin ではなくアップロード用の User を作成してコンポーネントを登録します。
参照したサイト・書籍
目次
手順
コンポーネント登録用の Role を作成する
http://localhost:8081/ にアクセスし nexus の管理画面を表示後、画面右上の「Sign in」をクリックして admin / admin123 でサインインします。
画面上部の歯車のアイコンをクリックします。
画面左側のツリーから「Security」-「Roles」を選択後、画面右側の画面の「Create role」-「Nexus role」をクリックします。
「Create Role」画面が表示されます。以下の値を入力後、「Create role」ボタンをクリックします。Privileges には以下のものを選択します。
- nx-repository-view-maven2-maven-releases-add
- nx-repository-view-maven2-maven-releases-browse
- nx-repository-view-maven2-maven-releases-edit
- nx-repository-view-maven2-maven-releases-read
- nx-repository-view-maven2-maven-snapshots-add
- nx-repository-view-maven2-maven-snapshots-browse
- nx-repository-view-maven2-maven-snapshots-edit
- nx-repository-view-maven2-maven-snapshots-read
※Maven2 の repository にコンポーネントを追加するのに必要なのは
nx-repository-view-maven2-maven-...
で始まる role です。
※今回作成するユーザにはアップロードされたコンポーネントを削除できないように...-delete
以外の role を追加します。
コンポーネント登録用の User を作成する
画面左側のツリーから「Security」-「Users」を選択後、画面右側の画面の「Create user」をクリックします。
「Create User」画面が表示されます。以下の値を入力後、「Create user」ボタンをクリックします。
- 今回は単純に role と同じ名前を付けることにします。
- Password には
xxxxxxxx
を入力します。 - Roles には上で作成した「upload-component」だけを選択します。
作成した User でコンポーネントを登録する
まず upload-component ユーザで maven-releases と maven-snapshots の repository を閲覧できるか確認します。
nexus の管理画面右上の「Sign out」をクリックしてサインアウトした後、「Sign in」をクリックして upload-component でサインインします。サインイン後、maven-releases と maven-snapshots の repository は以下のように表示されました。
ksbysample-library-depend-nospring プロジェクトで作成した upload-component ユーザでアップロードできるか確認します。
build.gradle を リンク先のその1の内容 に変更します。
IntelliJ IDEA の Gradle projects View の「Refresh all Gradle projects」ボタンをクリックした後、uploadArchives タスクを実行します。"BUILD SUCCESSFUL" が表示され、登録に成功します。
nexus の管理画面で maven-snapshots repository を見ると、ksbysample-library-depend-nospring ライブラリが登録されていることが確認できます。
「Delete component」ボタンが表示されていますが、クリックしても削除できませんでした。
build.gradle を リンク先のその2の内容 に変更します。
IntelliJ IDEA の Gradle projects View から uploadArchives タスクを実行します。"BUILD SUCCESSFUL" が表示され、登録に成功します。
nexus の管理画面で maven-releases repository を見ると、ksbysample-library-depend-nospring ライブラリが登録されていることが確認できます。
「Delete component」ボタンが表示されていますが、クリックしても削除できませんでした。
今回 nexus に登録した 1.3-SNAPSHOT, 1.3-RELEASE のコンポーネントは削除し、build.gradle の修正も元に戻します。
メモ書き
今回はやりませんでしたが、upload するコンポーネントを限定したい場合にはおそらく以下の手順で Role を作成すれば出来るはず。。。
- Content selector を作成します。selector の Specification に JEXL で限定するコンポーネントを記述します。
- Privilege を作成します。
- Privilege を割り当てた Role を作成します。
マニュアルはここ ( https://books.sonatype.com/nexus-book/reference3/admin.html#content-selectors )。
ソースコード
build.gradle
■その1
group 'ksbysample.library' version '1.3-SNAPSHOT' ........ uploadArchives { def nexusUrl = "http://localhost:8081" def nexusUsername = "upload-component" def nexusPassword = "xxxxxxxx" ........ }
- version の値を
1.2-RELEASE
→1.3-SNAPSHOT
へ変更します。 - uploadArchives タスクの nexusUsername, nexusPassword を
admin
→upload-component
,admin123
→xxxxxxxx
へ変更します。
■その2
group 'ksbysample.library' version '1.3-RELEASE' ........
- version の値を
1.3-SNAPSHOT
→1.3-RELEASE
へ変更します。
履歴
2016/12/18
初版発行。