JFrogのリポジトリはMaven Central Repositoryのようなある種公的なリポジトリと異なり、読み書きできるリポジトリで、もちろんアーティファクトをデプロイするには認証が必要です。
リポジトリにデプロイするにあたり、settings.xmlと、pom.xmlに2箇所設定する必要があります。
1. settings.xmlを編集(無ければ追加)
$ vi ~/.m2/settings.xml で、server要素を追加します。赤色の部分が今回追加した箇所。idはpom.xmlに記述するものと合わせれば何でも構いません。username、passwordはArtifactoryにログインするID、パスワードです。
<settings> <servers> <server> <id>samuraism-jfrog</id> <username>admin</username> <password>*************************</password> </server> <server> <id>samuraism-space</id> <username>yusuke</username> <password>********************</password> </server> </servers> </settings>
2. リポジトリのURLを確認
Artifactory→Artifacts→maven-local→General→URL to file:よりURLをコピー。ご丁寧に:443とポート番号が書かれていますが、URLスキームがちゃんとhttpsならば省略して構いません。
3. pom.xmlを編集
pom.xmlのdistributionManagement要素を編集します。ない場合はbuild要素の前に追加します。
<distributionManagement> <repository> <id>samuraism-jfrog</id> <name>Corporate Repository</name> <url>https://jfrog.samuraism.com/artifactory/maven-local/</url> <layout>default</layout> </repository> </distributionManagement>
4. デプロイできるか確認
CIでテスト合格後に自動デプロイさせるのがかっこいいですが、まずは手元で確認します。
$ mvn -X -Dmaven.test.skip=true clean deploy <略> Uploaded to samuraism-jfrog: https://jfrog.samuraism.com/artifactory/maven-local/samuraism/frontend/maven-metadata.xml (309 B at 5.7 kB/s) [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary for samuraism 1.0-SNAPSHOT: [INFO] [INFO] samuraism .......................................... SUCCESS [ 5.611 s] [INFO] core ............................................... SUCCESS [ 26.097 s] [INFO] backend ............................................ SUCCESS [ 52.406 s] [INFO] frontend ........................................... SUCCESS [ 45.411 s] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 02:18 min [INFO] Finished at: 2020-03-29T17:13:34+09:00 [INFO] ------------------------------------------------------------------------
5. デプロイされたパッケージを確認
Artifactory > Packagesを開いて、Mavenの各モジュールがパッケージとして見えることが確認できます。
rubygems-updateっていうのが見えるけれどもこれが何なのかは謎。
会社のシステムの成果物の保管場所としてまだEAP版であるJetBrainsのSpace↓を使ってきいますが、さすがに成熟した製品↑は情報量が違います。