SlideShare a Scribd company logo
. . . . . .
Apache Archiva を試す
July 15, 2013
. . . . . .
Apache Archiva を試す
ふと浮かぶ疑問
▶ ソースコード(.java)は Git などのバージョン管理システムで管理できる
▶ ではビルド済みファイル(.jar)は?
みんなはどうしているのだろう
▶ 『はてなで聞いた』けど、誰も教えてくれない
▶ 自分で見つけてきた Apache Archiva を試すことにした
. . . . . .
Apache Archiva とは
Apache Archiva とは
▶ 『Apache Archiva』で配布されているリポジトリ管理ソフトウェア
▶ Maven リポジトリなどを管理できる
▶ インハウスリポジトリをたてるのに便利?
▶ 類似製品には JFrog Artifactory や sonatype Nexus など
インハウスリポジトリとは
▶ 社内などで使う共有リポジトリ
▶ HTTP におけるプロキシサーバーのようなもの
▶ 参考:『http://www.nulab.co.jp/kousei/chapter5/02.html』
. . . . . .
Archiva をインストール (1/2)
Archiva をダウンロード
▶ 『Apache Archiva』の公式サイトからダウンロード
▶ ZIP (Standalone) / WAR がある
▶ 今回は ZIP ( Archiva 1.3.6 Standalone zip ) をダウンロード
Archiva をインストール、起動
▶ 適当なディレクトリにコピーし、展開し、起動する
$ unzip apache-archiva-1.3.6-bin.zip
$ cd apache-archiva/bin/
$ ./archiva console
. . . . . .
Archiva をインストール (2/2)
動作確認とユーザー作成
▶ Web ブラウザで http://localhost:8080/archiva にアクセス
▶ 管理ユーザーの作成を求められるので適当なユーザーを作成
▶ User Management から internal / snapshots
の管理権限を付与した適当なユーザーを作成
▶ 『詳しくは公式の Quick Start 参照』
. . . . . .
Archiva をリポジトリとして使う (1/2)
▶ settings.xml の mirror に Archiva のリポジトリを追加
(設定イメージを後述)
▶ Maven で依存関係を解決→Archiva のリポジトリが使われる→JAR
がキャッシュされる
▶ http://localhost:8080/archiva/browse から結果を確認
▶ 詳しくは公式の Using as a repository を参照
. . . . . .
Archiva をリポジトリとして使う (2/2)
▶ settings.xml 設定イメージ
<settings ...
<mirrors>
<mirror>
<id>archiva.default</id>
<url>http://localhost:8080/archiva/repository/internal/</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
...
</settings>
. . . . . .
Archiva にデプロイする (1/3)
▶ HTTP を使ってデプロイする
▶ settings.xml に認証設定を追加 ( 設定イメージを後述 )
▶ pom.xml の distributedManagement に repository 設定を追加 (
設定イメージを後述 )
▶ mvn deploy でデプロイ
▶ 『詳しくは公式の Deploying to repository を参照』
▶ (検索すると Maven Wagon Plugin を使って WebDAV
でデプロイする例ばかりで嫌になる)
. . . . . .
Archiva にデプロイする (2/3)
▶ settings.xml 設定イメージ
<settings ...
<servers>
<server>
<id>archiva.internal</id>
<username>username</username>
<password>password</password>
</server>
<server>
<id>archiva.snapshots</id>
<username>username</username>
<password>password</password>
</server>
</servers>
...
</settings>
. . . . . .
Archiva にデプロイする (3/3)
▶ pom.xml 設定イメージ
<project ...
<distributionManagement>
<repository>
<id>archiva.internal</id>
<name>Internal Release Repository</name>
<url>http://localhost:8080/archiva/repository/internal/</url>
</repository>
<snapshotRepository>
<id>archiva.snapshots</id>
<name>Internal Snapshot Repository</name>
<url>http://localhost:8080/archiva/repository/snapshots/</url>
</snapshotRepository>
</distributionManagement>
...
</project>
. . . . . .
おしまい
▶ これで .jar 管理が楽しくなるね
▶ 参考URL:
▶ http://archiva.apache.org/
▶ http://archiva.apache.org/
▶ http://labs.n2sm.co.jp/?p=128
▶ http://www.nulab.co.jp/kousei/chapter5/02.html
▶ http://archiva.apache.org/docs/1.3.6/quick-start.html
▶ http://archiva.apache.org/docs/1.3.6/userguide/using-
repository.html
▶ http://archiva.apache.org/docs/1.3.6/userguide/deploy.html

More Related Content

What's hot

Amazon DynamoDBの紹介と東急ハンズでの活用について
Amazon DynamoDBの紹介と東急ハンズでの活用についてAmazon DynamoDBの紹介と東急ハンズでの活用について
Amazon DynamoDBの紹介と東急ハンズでの活用について
Taiji INOUE
 
MongoDBの脆弱性診断 - smarttechgeeks
MongoDBの脆弱性診断 - smarttechgeeksMongoDBの脆弱性診断 - smarttechgeeks
MongoDBの脆弱性診断 - smarttechgeeks
tobaru_yuta
 
SpringBootTest入門
SpringBootTest入門SpringBootTest入門
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
Tetsutaro Watanabe
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
Takuto Wada
 
RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」
オラクルエンジニア通信
 
JVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニングJVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニング
佑哉 廣岡
 
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
Takafumi ONAKA
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
JustSystems Corporation
 
なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)
なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)
なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)
Masaya Tahara
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
 
Firebaseを利用するためにGCPとCloud IAMの 基本を理解しよう
Firebaseを利用するためにGCPとCloud IAMの 基本を理解しようFirebaseを利用するためにGCPとCloud IAMの 基本を理解しよう
Firebaseを利用するためにGCPとCloud IAMの 基本を理解しよう
kbigwheel
 
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのかDDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
 
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
Shigeru Hanada
 
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
 
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
5分で分かるgitのrefspec
5分で分かるgitのrefspec5分で分かるgitのrefspec
5分で分かるgitのrefspec
ikdysfm
 
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?
Takuya Ueda
 
Maven基礎
Maven基礎Maven基礎
Maven基礎
Toshio Takiguchi
 

What's hot (20)

Amazon DynamoDBの紹介と東急ハンズでの活用について
Amazon DynamoDBの紹介と東急ハンズでの活用についてAmazon DynamoDBの紹介と東急ハンズでの活用について
Amazon DynamoDBの紹介と東急ハンズでの活用について
 
MongoDBの脆弱性診断 - smarttechgeeks
MongoDBの脆弱性診断 - smarttechgeeksMongoDBの脆弱性診断 - smarttechgeeks
MongoDBの脆弱性診断 - smarttechgeeks
 
SpringBootTest入門
SpringBootTest入門SpringBootTest入門
SpringBootTest入門
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」RDF Semantic Graph「RDF 超入門」
RDF Semantic Graph「RDF 超入門」
 
JVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニングJVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニング
 
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
 
なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)
なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)
なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
 
Firebaseを利用するためにGCPとCloud IAMの 基本を理解しよう
Firebaseを利用するためにGCPとCloud IAMの 基本を理解しようFirebaseを利用するためにGCPとCloud IAMの 基本を理解しよう
Firebaseを利用するためにGCPとCloud IAMの 基本を理解しよう
 
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのかDDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
 
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
 
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
 
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
これがCassandra
これがCassandraこれがCassandra
これがCassandra
 
5分で分かるgitのrefspec
5分で分かるgitのrefspec5分で分かるgitのrefspec
5分で分かるgitのrefspec
 
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?
 
Maven基礎
Maven基礎Maven基礎
Maven基礎
 

Apache Archiva を試す

  • 1. . . . . . . Apache Archiva を試す July 15, 2013
  • 2. . . . . . . Apache Archiva を試す ふと浮かぶ疑問 ▶ ソースコード(.java)は Git などのバージョン管理システムで管理できる ▶ ではビルド済みファイル(.jar)は? みんなはどうしているのだろう ▶ 『はてなで聞いた』けど、誰も教えてくれない ▶ 自分で見つけてきた Apache Archiva を試すことにした
  • 3. . . . . . . Apache Archiva とは Apache Archiva とは ▶ 『Apache Archiva』で配布されているリポジトリ管理ソフトウェア ▶ Maven リポジトリなどを管理できる ▶ インハウスリポジトリをたてるのに便利? ▶ 類似製品には JFrog Artifactory や sonatype Nexus など インハウスリポジトリとは ▶ 社内などで使う共有リポジトリ ▶ HTTP におけるプロキシサーバーのようなもの ▶ 参考:『http://www.nulab.co.jp/kousei/chapter5/02.html』
  • 4. . . . . . . Archiva をインストール (1/2) Archiva をダウンロード ▶ 『Apache Archiva』の公式サイトからダウンロード ▶ ZIP (Standalone) / WAR がある ▶ 今回は ZIP ( Archiva 1.3.6 Standalone zip ) をダウンロード Archiva をインストール、起動 ▶ 適当なディレクトリにコピーし、展開し、起動する $ unzip apache-archiva-1.3.6-bin.zip $ cd apache-archiva/bin/ $ ./archiva console
  • 5. . . . . . . Archiva をインストール (2/2) 動作確認とユーザー作成 ▶ Web ブラウザで http://localhost:8080/archiva にアクセス ▶ 管理ユーザーの作成を求められるので適当なユーザーを作成 ▶ User Management から internal / snapshots の管理権限を付与した適当なユーザーを作成 ▶ 『詳しくは公式の Quick Start 参照』
  • 6. . . . . . . Archiva をリポジトリとして使う (1/2) ▶ settings.xml の mirror に Archiva のリポジトリを追加 (設定イメージを後述) ▶ Maven で依存関係を解決→Archiva のリポジトリが使われる→JAR がキャッシュされる ▶ http://localhost:8080/archiva/browse から結果を確認 ▶ 詳しくは公式の Using as a repository を参照
  • 7. . . . . . . Archiva をリポジトリとして使う (2/2) ▶ settings.xml 設定イメージ <settings ... <mirrors> <mirror> <id>archiva.default</id> <url>http://localhost:8080/archiva/repository/internal/</url> <mirrorOf>*</mirrorOf> </mirror> </mirrors> ... </settings>
  • 8. . . . . . . Archiva にデプロイする (1/3) ▶ HTTP を使ってデプロイする ▶ settings.xml に認証設定を追加 ( 設定イメージを後述 ) ▶ pom.xml の distributedManagement に repository 設定を追加 ( 設定イメージを後述 ) ▶ mvn deploy でデプロイ ▶ 『詳しくは公式の Deploying to repository を参照』 ▶ (検索すると Maven Wagon Plugin を使って WebDAV でデプロイする例ばかりで嫌になる)
  • 9. . . . . . . Archiva にデプロイする (2/3) ▶ settings.xml 設定イメージ <settings ... <servers> <server> <id>archiva.internal</id> <username>username</username> <password>password</password> </server> <server> <id>archiva.snapshots</id> <username>username</username> <password>password</password> </server> </servers> ... </settings>
  • 10. . . . . . . Archiva にデプロイする (3/3) ▶ pom.xml 設定イメージ <project ... <distributionManagement> <repository> <id>archiva.internal</id> <name>Internal Release Repository</name> <url>http://localhost:8080/archiva/repository/internal/</url> </repository> <snapshotRepository> <id>archiva.snapshots</id> <name>Internal Snapshot Repository</name> <url>http://localhost:8080/archiva/repository/snapshots/</url> </snapshotRepository> </distributionManagement> ... </project>
  • 11. . . . . . . おしまい ▶ これで .jar 管理が楽しくなるね ▶ 参考URL: ▶ http://archiva.apache.org/ ▶ http://archiva.apache.org/ ▶ http://labs.n2sm.co.jp/?p=128 ▶ http://www.nulab.co.jp/kousei/chapter5/02.html ▶ http://archiva.apache.org/docs/1.3.6/quick-start.html ▶ http://archiva.apache.org/docs/1.3.6/userguide/using- repository.html ▶ http://archiva.apache.org/docs/1.3.6/userguide/deploy.html