LoginSignup
0
0

More than 5 years have passed since last update.

RaspberryPi2にArchivaセットアップしたメモ その2

Posted at

前回の続き。
管理者の登録と、リポジトリのプロキシ機能の確認まで。

管理者登録

ブラウザでhttp://{ラズパイのIP}:8080/archivaにアクセス。

トップページの初期化が遅い・・・。

右上のCreate Admin Userボタン押して、以下の項目を入力。

  • Username
  • Full Name
  • Password
  • Confirm Password
  • Email Address

以下のチェックボックスはOFFのままで。

  • Validated
  • Locked
  • Change password required

Saveボタンを押下。

パスワードは8文字以上で数値を含む必要がある。

ユーザ名を変えられそうなUIになっているがadminでなければならないらしい。
別のユーザ名を入力しても無視されてadminのまま。
なんだこの仕様は・・・。

リポジトリの確認

デフォルトでinternalsnapshotの2つのリポジトリが用意されている。

internalはMevenCentralのプロキシにもなっていて、
このリポジトリにMavenCentralにあるアーティファクトを要求すると
Centralから取ってきてキャッシュするらしい。

「Centralから取ってきてキャッシュするらしい」
というのがホントかどうか試してみる。

MavenでもGradleでもいいのだが、sbtで。

ラズパイに建てたArchivaを参照するようにsbtを設定。

# me@mac.local
$ cat <<'EOF'> ~/.sbt/repositories
[repositories]
  local
  internal: http://{ラズパイのIP}:8080/archiva/repository/internal/
EOF

URLは

  1. adminでログイン
  2. 左側のRepositoriesメニューからリポジトリ一覧を表示
  3. internalのActionからPom Snippetを選択

で表示されるxmlの中から拾ってくる。

ローカルのキャッシュを消す。

# me@mac.local
$ rm -rf .ivy2/cache/*

テスト用のsbtプロジェクトを作る。

# me@mac.local
$ mkdir test
$ cd test

# maven-centralにあるやつならなんでもいい。
$ cat <<'EOF'> build.sbt
libraryDependencies += "org.apache.derby" % "derby" % "10.12.1.1"
EOF

$ cat <<'EOF'> sample.scala
object Main extends App {
  println("sample!!")
}
EOF

できたら、実行。

$ sbt run
    :
[error] Unable to find credentials for [Repository Archiva Managed internal Repository @ raspberrypi].
    :

失敗。
archiva.logにもAuthorization Deniedと出ていた。

ID/PWが必要らしい。
Credentialの設定をすればいいのだろうが、参照だけでID/PW求められるのもうざい。

ID/PWなしでアーティファクトを取得できるようにする。

ユーザ/ロール周りの仕組みはredbackを使ってるらしい。

redbackよく知らない・・・。

軽く触ってみた感じでは新たにロールを作ったり、
既存のロールに権限を追加/削除することはできなさそう。

設定ファイルとかイジればできるのかもしれんが、とりあえずUIからはできなさそう。

あと眺めてて気づいたのはロールに親子関係がある様子。

guestというユーザがいるので、これにRepository Managerロールをつければできそうな予感。

  1. adminでログイン
  2. 左側メニューのUSERSカテゴリのManageからユーザ一覧を表示
  3. Edit(鉛筆のアイコン)
  4. Edit Rolesリンク
  5. internalsnapshotsRepository ManagerチェックをON。

Update

リトライ。

# me@mac.local
$ sbt run
    :
[info] downloading http://{ラズパイのIP}:8080/archiva/repository/internal/org/scala-lang/scala-library/2.10.5/scala-library-2.10.5.jar ...
[info]  [SUCCESSFUL ] org.scala-lang#scala-library;2.10.5!scala-library.jar (1473ms)
    :
[info] downloading http://{ラズパイのIP}:8080/archiva/repository/internal/com/typesafe/config/1.3.0/config-1.3.0.jar ...
[info]  [SUCCESSFUL ] com.typesafe#config;1.3.0!config.jar(bundle) (132ms)
    :
[info] downloading http://{ラズパイのIP}:8080/archiva/repository/internal/org/scala-lang/scala-compiler/2.10.5/scala-compiler-2.10.5.jar ...
[info]  [SUCCESSFUL ] org.scala-lang#scala-compiler;2.10.5!scala-compiler.jar (2409ms)
    :
[info] downloading http://{ラズパイのIP}:8080/archiva/repository/internal/org/scala-lang/scala-reflect/2.10.5/scala-reflect-2.10.5.jar ...
[info]  [SUCCESSFUL ] org.scala-lang#scala-reflect;2.10.5!scala-reflect.jar (535ms)
    :
[info] downloading http://{ラズパイのIP}:8080/archiva/repository/internal/org/scala-lang/jline/2.10.5/jline-2.10.5.jar ...
[info]  [SUCCESSFUL ] org.scala-lang#jline;2.10.5!jline.jar (128ms)
    :
[info] downloading http://{ラズパイのIP}:8080/archiva/repository/internal/org/fusesource/jansi/jansi/1.4/jansi-1.4.jar ...
[info]  [SUCCESSFUL ] org.fusesource.jansi#jansi;1.4!jansi.jar (77ms)
    :
[info] Running Main 
sample!!

ログは途中割愛。

できた!
・・・が遅い。

どこにキャッシュされているのか・・・?

できたはいいが、Achivaのどこに置いてあるのか探してみる。

# archiva@raspberrypi
$ find ~ -type f -name 'scala-library*'
/home/archiva/repositories/internal/org/scala-lang/scala-library/2.10.5/scala-library-2.10.5.pom.sha1
/home/archiva/repositories/internal/org/scala-lang/scala-library/2.10.5/scala-library-2.10.5.jar.md5
/home/archiva/repositories/internal/org/scala-lang/scala-library/2.10.5/scala-library-2.10.5.jar.sha1
/home/archiva/repositories/internal/org/scala-lang/scala-library/2.10.5/scala-library-2.10.5.pom.md5
/home/archiva/repositories/internal/org/scala-lang/scala-library/2.10.5/scala-library-2.10.5.jar
/home/archiva/repositories/internal/org/scala-lang/scala-library/2.10.5/scala-library-2.10.5.pom

repositories/internalにある模様。

~/.sbt/repositoriesに設定したURLで、ブラウザからも閲覧可能。
scala-libraryなら↓このURL。

http://{ラズパイのIP}:8080/archiva/repository/internal/org/scala-lang/scala-library/


自前のプロジェクトをリポジトリに登録してみる実験もしてみなければ・・・。

参考資料:
Apache Archiva
SBT | Dependency Management

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0