Java, 自宅サーバ

JFrog ArtifactoryのMavenリポジトリにアーティアクトをデプロイ #jfrog_jp @jfrog_jp

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↓を使ってきいますが、さすがに成熟した製品↑は情報量が違います。