質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Q&A

解決済

1回答

1825閲覧

bintray(jcenter)で、複数のアーティファクトを含むパッケージがありますが、なぜですか?

hiroga

総合スコア91

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

0グッド

0クリップ

投稿2020/04/29 23:47

勉強のためMavenのパッケージを検索するツールを作っています。JCenterの概念がよく分からないので教えて下さい。

まず、jcenterでは階層構造に従ってMavenパッケージが保存されていると理解しています。

以下のURLだと、 owner = bintray, repo = jcenter, name = junit:junit という理解です。
https://bintray.com/bintray/jcenter/junit:junit

URLを開くと、このパッケージに含まれるアーティファクトは junit:junitだけだということも分かります。

イメージ説明

ところが、次のURLのパッケージには複数のアーティファクトが含まれるようです。
https://bintray.com/isabiq/maven-repo/java9-migration

イメージ説明

ここで疑問があります。

  • ひとつのパッケージに複数のアーティファクトを含めると何が嬉しいのでしょうか?単に複数のパッケージを作れば事足りませんか?
  • 2つ目のURLのように、自作ではないアーティファクトを自分のパッケージで公開?することは普通ですか?
  • パッケージがバージョンを持ち、かつパッケージ内に複数のアーティファクトがあるということは、アーティファクトの最新バージョンを知ることができず困らないでしょうか?

以上、よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

とりあえずBintrayやJCenter等についての説明からします。
まず、BintrayはJFrong社が開発・運営する汎用パッケージリポジトリサービスで、MavenだけでなくNuGet(.Net), Docker, npm等の様々なパッケージマネージャーに対応しています。そのため、Maven Central等のMaven専用のリポジトリとは用語・構造が少し異なります。
JCenterは、Bintray公式のBintray上にあるMavenパッケージをミラーリングする用のリポジトリです。BintrayをMavenリポジトリとして使用する場合、各リポジトリごとに参照を設定しないといけない(以下のコードのmaven{}の部分が増える)ので、主にその手間を簡略化するために用いられます。

repositories { maven { url "https://dl.bintray.com/justincase/aws-cdk-kotlin-dsl" } }

そして、質問に関する答えなんですが、

  • 少なくともMavenに限るなら、Mavenリポジトリとしてアーティファクトを利用する際の記述は何も変わらないので、ぶっちゃけ好みな感じがします。( AWS-CDK-Kotlin-DSL ではアーティファクトごとにパッケージを作成していますが、 Ktor では1つのパッケージにまとめています)。Ktorの様なマルチモジュール型のライブラリの場合は各バージョンに存在するアーティファクトを一覧で見れる、というメリットがあります。(Ktorレベルの量になるとロードがめっちゃ重いですが・・・)あとはKotlinのMPP対応ライブラリの場合、1つのバージョンに各プラットフォーム対応のアーティファクトが含まれる形になるのではないでしょうか?
  • 自作でないアーティファクトに関しても公開するのは一般的ではないです。基本的には作者が公開しているものを使えばいいので(何らかの事情でビルド済みのバイナリが手に入らない場合等はすることも考えられますが)。ただ、他人の作った物のフォークをそのままのgroupId, artifactIdで公開する事は稀にあります。
  • 例に挙げられている様な構造だと普通に困ると思います。ですが、そのパッケージは色々な意味で特殊なので気にしない方が良いと思います。

投稿2020/04/30 00:40

toliner_

総合スコア24

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問