artifactory
ビルド成果物をアーティファクトというらしいが、これは要するにjarファイルとその依存を記述したpom.xml,ivy.xml等のファイルがいっしょになったもの。 例えば、自分で記述したプログラムのjarファイルの実行にcommons-loggingが必要であれば、これらのxmlにそれが記述され、その状態でリポジトリに登録される。
また、プログラムを改修してバージョンが変更になった場合には、再度リポジトリに登録するが、以前のバージョンを必要とするユーザのために歴代のバージョンをすべて保存しておく。
さらに、世界中で公開されているアーティファクトリがすべて収められた公開リポジトリもあり、ここに有名どころはすべて揃っている。
前者をインハウスリポジトリ、後者をセントラルリポジトリとここでは呼ぶ。
artifactoryを適当なサーバにインストールすることにより、インハウスリポジトリ(自分達のリポジトリ)を作成することができるのだが、しかしセントラルリポジトリのキャッシュとしても使用することができる。つまり、artifactory一つあれば両方の役割を果たしてくれる。
インストール
ここではCentOS6.5にインストールするので、以下からRPMをダウンロードしてインストール。
http://www.jfrog.com/open-source/
インストールされるファイルは以下の通り
/etc/init.d/artifactory /etc/opt/jfrog /etc/opt/jfrog/artifactory /etc/opt/jfrog/artifactory/artifactory.config.xml /etc/opt/jfrog/artifactory/artifactory.system.properties /etc/opt/jfrog/artifactory/default /etc/opt/jfrog/artifactory/logback.xml /etc/opt/jfrog/artifactory/mimetypes.xml /opt/jfrog /opt/jfrog/artifactory /opt/jfrog/artifactory/bin /opt/jfrog/artifactory/bin/artifactory-service.exe /opt/jfrog/artifactory/bin/artifactory.bat /opt/jfrog/artifactory/bin/artifactory.default /opt/jfrog/artifactory/bin/artifactory.sh /opt/jfrog/artifactory/bin/artifactoryctl /opt/jfrog/artifactory/bin/configure.mysql.sh /opt/jfrog/artifactory/bin/installService.bat /opt/jfrog/artifactory/bin/installService.sh /opt/jfrog/artifactory/bin/recover.backup.sh /opt/jfrog/artifactory/bin/uninstallService.bat /opt/jfrog/artifactory/bin/uninstallService.sh /opt/jfrog/artifactory/misc /opt/jfrog/artifactory/misc/db /opt/jfrog/artifactory/misc/db/createdb /opt/jfrog/artifactory/misc/db/createdb/createdb_mssql.sql /opt/jfrog/artifactory/misc/db/createdb/createdb_mssqlBlob.sql /opt/jfrog/artifactory/misc/db/createdb/createdb_mssqlRecreateBlob.sql /opt/jfrog/artifactory/misc/db/createdb/createdb_mysql.sql /opt/jfrog/artifactory/misc/db/mssql.properties /opt/jfrog/artifactory/misc/db/mysql.properties /opt/jfrog/artifactory/misc/db/oracle.properties /opt/jfrog/artifactory/misc/db/postgresql.properties /opt/jfrog/artifactory/misc/ha /opt/jfrog/artifactory/misc/ha/ha-node.properties.template /opt/jfrog/artifactory/misc/service /opt/jfrog/artifactory/misc/service/artifactory /opt/jfrog/artifactory/misc/service/setenv.sh /opt/jfrog/artifactory/misc/tomcat /opt/jfrog/artifactory/misc/tomcat/NGNIX.txt /opt/jfrog/artifactory/misc/tomcat/artifactory.httpd.conf /opt/jfrog/artifactory/misc/tomcat/artifactory.xml /opt/jfrog/artifactory/misc/tomcat/index.html /opt/jfrog/artifactory/misc/tomcat/logging.properties /opt/jfrog/artifactory/misc/tomcat/server.xml /opt/jfrog/artifactory/misc/tomcat/web.xml /opt/jfrog/artifactory/misc/websphere /opt/jfrog/artifactory/misc/websphere/README.txt /opt/jfrog/artifactory/misc/websphere/web.xml /opt/jfrog/artifactory/tomcat /opt/jfrog/artifactory/tomcat/LICENSE /opt/jfrog/artifactory/tomcat/NOTICE /opt/jfrog/artifactory/tomcat/RELEASE-NOTES /opt/jfrog/artifactory/tomcat/RUNNING.txt /opt/jfrog/artifactory/tomcat/bin /opt/jfrog/artifactory/tomcat/bin/bootstrap.jar /opt/jfrog/artifactory/tomcat/bin/catalina-tasks.xml /opt/jfrog/artifactory/tomcat/bin/catalina.bat /opt/jfrog/artifactory/tomcat/bin/catalina.sh /opt/jfrog/artifactory/tomcat/bin/commons-daemon-native.tar.gz /opt/jfrog/artifactory/tomcat/bin/commons-daemon.jar /opt/jfrog/artifactory/tomcat/bin/configtest.bat /opt/jfrog/artifactory/tomcat/bin/configtest.sh /opt/jfrog/artifactory/tomcat/bin/daemon.sh /opt/jfrog/artifactory/tomcat/bin/digest.bat /opt/jfrog/artifactory/tomcat/bin/digest.sh /opt/jfrog/artifactory/tomcat/bin/setclasspath.bat /opt/jfrog/artifactory/tomcat/bin/setclasspath.sh /opt/jfrog/artifactory/tomcat/bin/setenv.sh /opt/jfrog/artifactory/tomcat/bin/shutdown.bat /opt/jfrog/artifactory/tomcat/bin/shutdown.sh /opt/jfrog/artifactory/tomcat/bin/startup.bat /opt/jfrog/artifactory/tomcat/bin/startup.sh /opt/jfrog/artifactory/tomcat/bin/tomcat-juli.jar /opt/jfrog/artifactory/tomcat/bin/tomcat-native.tar.gz /opt/jfrog/artifactory/tomcat/bin/tool-wrapper.bat /opt/jfrog/artifactory/tomcat/bin/tool-wrapper.sh /opt/jfrog/artifactory/tomcat/bin/version.bat /opt/jfrog/artifactory/tomcat/bin/version.sh /opt/jfrog/artifactory/tomcat/conf /opt/jfrog/artifactory/tomcat/conf/Catalina /opt/jfrog/artifactory/tomcat/conf/Catalina/localhost /opt/jfrog/artifactory/tomcat/conf/Catalina/localhost/artifactory.xml /opt/jfrog/artifactory/tomcat/conf/catalina.policy /opt/jfrog/artifactory/tomcat/conf/catalina.properties /opt/jfrog/artifactory/tomcat/conf/logging.properties /opt/jfrog/artifactory/tomcat/conf/server.xml /opt/jfrog/artifactory/tomcat/conf/web.xml /opt/jfrog/artifactory/tomcat/lib /opt/jfrog/artifactory/tomcat/lib/annotations-api.jar /opt/jfrog/artifactory/tomcat/lib/catalina.jar /opt/jfrog/artifactory/tomcat/lib/el-api.jar /opt/jfrog/artifactory/tomcat/lib/servlet-api.jar /opt/jfrog/artifactory/tomcat/lib/tomcat-api.jar /opt/jfrog/artifactory/tomcat/lib/tomcat-coyote.jar /opt/jfrog/artifactory/tomcat/lib/tomcat-jni.jar /opt/jfrog/artifactory/tomcat/lib/tomcat-util-scan.jar /opt/jfrog/artifactory/tomcat/lib/tomcat-util.jar /opt/jfrog/artifactory/tomcat/logs /opt/jfrog/artifactory/tomcat/temp /opt/jfrog/artifactory/tomcat/webapps /opt/jfrog/artifactory/tomcat/webapps/ROOT /opt/jfrog/artifactory/tomcat/webapps/ROOT/index.html /opt/jfrog/artifactory/tomcat/work /opt/jfrog/artifactory/webapps /opt/jfrog/artifactory/webapps/artifactory.war /opt/jfrog/doc /opt/jfrog/doc/artifactory-4.0.1 /opt/jfrog/doc/artifactory-4.0.1/COPYING /opt/jfrog/doc/artifactory-4.0.1/COPYING.LESSER /opt/jfrog/doc/artifactory-4.0.1/README.txt /opt/jfrog/doc/artifactory-4.0.1/Third-Parties-Usage-About-Box.html /var/opt/jfrog/artifactory /var/opt/jfrog/artifactory/etc /var/opt/jfrog/artifactory/misc /var/opt/jfrog/artifactory/tomcat /var/opt/jfrog/artifactory/webapps /var/opt/jfrog/run
サービスとして登録されるので、これを起動する。
service artifactory start
すると、ビルトインのtomcatが起動するのだが、ポートは8081になっているので、既に別の目的のtomcatが起動していても問題ない。
このサーバのIPが192.168.1.177だとすると、http://192.168.1.177:8081/でアクセスできる。
デフォルトのデータベースはapache derbyのembeddedバージョンで、これは/var/opt/jfrog/artifactory/dataに作成される。 mysqlも使用可能のようだ。
管理者ログイン
管理者はadmin/passwordでログイン可能。
使用するリポジトリの選択
artifactoryは単一のリポジトリではなく、複数のリポジトリを提供しており、セントラルリポジトリ(リモート)、インハウスリポジトリ(ローカル)、あるいはそれぞれのスナップショット、ライブラリ用・プラグイン用などいろいろ用意されている。しかし、これらのすべてを使う必要はなく、また必要であれば追加することもできる。
通常リポジトリが複数ある場合には、ビルドツール側で読み込む場合には、それぞれ記述する必要があるようだが、artifactoryでは複数のリポジトリを一つにまとめて提供してくれるようだ。とりあえず、以下を使うことにする。
libs-release-local
インハウスリポジトリ。自分達が登録したものだけが存在する。
libs-release
上のリポジトリとセントラルリポジトリをまとめたもの。セントラルにあるものと、インハウスにあるものを区別なく参照できる。
とりあえずは上の二つを利用することにする。ビルドツールからはそれぞれ以下でアクセスされる。
当然ながら、書き込みが可能なのは前者だけだが、このときadmin/passwordを指定すればよい。
管理画面での操作
http://192.168.1.177:8081/の管理画面から様々な操作が可能になっている。
Artifacts
左側メニューでArtifactsをクリックすると、各リポジトリの一覧とその内容が表示される。jcenter(セントラルリポジトリ)やそれを包含する仮想的なlibs-releaseは中身が膨大なので見る必要はない。
この画面で可能になる重要なことは、インハウスリポジトリであるlibs-release-localの内容を調査、削除、新規作成するなどである。
既にインハウスリポジトリに何らかを登録した場合、libs-release-localを展開していくと、その登録の様子が確認できる。右クリックのコンテキストメニューでその登録を削除することができる。
また、右上の「Deploy」ボタンを使うことにより、セントラルリポジトリに登録されていないサードパーティ製のjarファイルを登録することができる。以下の手順
- Target Repositoryがlibs-release-localであることを確認
- Drop file hereのとこrにjarファイルをドロップ
- Deploy as Maven Artifactをチェック
- Maven Artifactの内容がデフォルトで表示されるので、修正が必要であれば修正する。
- Deploy jar's internal POM/General Default POMをチェック
- 右下のDeployをクリック