mavenの社内リポジトリとしてArtifactoryを使うことにしました。

mavenを使ってるプロジェクトの成果物をデプロイできるようにします。

インストールする

とりあえず動かす

ユーザーガイドが以下のページにあります。
Artifactory - Welcome to Artifactory!

まずは以下からzipファイルダウンロード。
Artifactory | Free Development software downloads at SourceForge.net

スタンドアロンでも動かせるし、tomcatかなんかにwarをのっけても動かせるみたいです。warファイルは解凍して出てくるwebappsディレクトリに入ってます。

今回はスタンドアロンで動かしました。

解凍後、環境変数ARTIFACTORY_HOMEとして解凍後でてきたディレクトリを設定します。
以下のコマンドでArtifactoryが起動します。

$ $ARTIFACTORY_HOME/bin/artifactoryctl start

http://localhost:8081/artifactoryにアクセスすればArtifactoryのトップページが表示されます。

サービスとして動かす

これでArtifactoryを起動することができました。でもサービスとして扱いたいなぁ。
ということで、解凍して出てきたbin/install.shをたたきます。

$ sudo $ARTIFACTORY_HOME/bin/install.sh

そうすると、/etc/init.d/artifactoryやら/etc/artifactoryやらartifactoryユーザーやらができあがります。
次に、/etc/artifactory環境変数JAVA_HOMEを設定。$ARTIFACTORY_HOMEディレクトリの所有者をartifactoryユーザーに変更。ここまでやったら以下のコマンドでartifactoryを起動できます。

$ sudo /sbin/service artifactory start

Artifactoryにデプロイする

Artifactoryの設定

「Artifacts」タブをクリックするとRepository Browserという画面が表示されます。その名の通りArtifactoryで管理しているリポジトリの一覧が表示さ
れています。この中のlibs-snapshot-localに自分のプロジェクトの成果物をdeployできるようにしましょう。

まずはArtifactoryの権限に関する設定をします。
画面右上のloginから、ユーザーネームにadmin、パスワードにpasswordを入力してログイン。ログイン後「Admin」タブを選択します。ここで、リポジトリやユーザー、パーミッションの設定ができそう、あとはロゴを変えたり、ログを見たりも。

画面左メニューのSecurityの「Users」を選択すると、anonymouseというユーザーがいることが分かります。
新たにユーザーを作ることもできそうですが、とりあえずanonymouseを使ってみることに。
このanonymouseユーザーのPermissionを表示すると「Any Remote」と「Anything」という2つのパーミッションが割り当てられていて、Anythingパーミッ
ションではdeployができないことが分かります。

両方ともクリックしてみれば分かりますが、「Any Remote」ではlibs-snapshot-localリポジトリは管理の対象ではなく、「Anything」では管理の対象になっています。
なので、anonymousユーザの「Anything」でdeployできるようにしてみます。
画面左メニューの「Permission」を選択するとパーミッション一覧が表示されるので、「Anything」のEdit画面を表示させます。Edit画面のUsersタブ選び、anonymousユーザのDeployにチェックを入れます。これで設定は完了。

Mavenの設定

Artifactoryの設定が完了したら、mavenの設定をしましょう。
設定する内容はArtifactoryの画面から確認できます。「HOME」タブを選択し、画面左のメニューから Maven Settingsを選択すると、Maven Setting Generator っていうのが表示されます。ここで、デフォルトのままでいいので、「Generate Settings」ボタンをクリック。そうするとmavenの設定するXMLが表示されます。これのprofileタグとactiveProfilesタ
グを、MAVEN_HOME/conf/settings.xmlに追記します。

次は、「Artifacts」タブを選択して、libs-snapshot-localリポジトリを選択すると画面上に「Distribution Management」っていうのが表示されます。このdistributionManagementタグを、プロジェクトのpom.xmlに追記します。

これで設定は完了です。以下のコマンドを実行すれば、プロジェクトの成果物がArtifactoryのlibs-snapshot-localリポジトリに登録されます。

$ mvn deploy

Artifactoryリポジトリブラウザからもデプロイしたwarファイルなどを閲覧することができます。


※認証つきユーザでデプロイしたい場合はこちらを参照してください。

Apache Maven 3クックブック Javaソフトウェア開発のための特選レシピ集

Apache Maven 3クックブック Javaソフトウェア開発のための特選レシピ集