2017-02-02 2 views
0

У меня есть много пакетов в пределах одного идентификатора группы.Bintray, объединить пакеты с общей группой id

мой основной идентификатор группы: com.github.kondaurovdev

я подгруппа: com.github.kondaurovdev.snippets com.github.kondaurovdev.akka_http ...

Я надеваю 't хочу создать много пакетов в bintray, потому что мне придется ждать одобрения, чтобы связать пакет с jcenter.

Так что я нашел «решение». В интерфейсе Bintray есть кнопка слияния, вы можете выбрать все пакеты с одинаковым идентификатором группы и иметь один пакет со множеством подпакетов. Вы можете связать этот пакет только один раз, и ваши пакеты будут загружаться с помощью репозитория JCenter. Это круто!

Но я не хочу сливаться каждый раз. Я хотел бы опубликовать свои подпакеты прямо в родительский пакет. Это возможно?

Я использую sbt-bintray для загрузки артефактов, но он всегда создает новый пакет и загружает контент.

+0

Вы посмотрели на [REST API] Bintray (https://bintray.com/docs/api/)? – jkinkead

+0

Да, я посмотрел –

ответ

7

Эмпирическое правило для принятия решения о некоторых artifact_ids должны быть объединены в единый пакет:

  1. Проекты подмодулями одного проекта, и
  2. Проекты выпускаются вместе

Позвольте мне привести несколько примеров, которые покажут, что я имею в виду. Я буду использовать проекты Spring Framework, которые довольно известны и разнообразны.

  1. spring-context и spring-beans артефакт идентификаторы объединены в одном пакете Bintray. Они связаны (часть основного проекта Spring DI), и они выпускаются вместе (например, 4.3.6.RELEASE). Они являются частью того же проекта Bintray - spring.framework.
  2. spring-batch-core имеет очень мало общего с проектом Spring DI, поэтому, несмотря на то, что они разделяют идентификатор группы org.springframework, они находятся в разных пакетах в Bintray.
  3. Различные подпроекты Spring Data, конечно, связаны, но у них разные версии релизов и разные расписания релизов. Например, в то время как Spring Data Commons - версия 1.11.4, Spring Data JPA - версия 1.9.4. Таким образом, хотя эти проекты связаны друг с другом, они не могут быть в одном пакете, потому что, если они имеют один и тот же пакет, к тому времени, когда данные JPA достигнут 1.11, версия будет уже доступна только для чтения, поскольку Data Commons 1.11 была выпущенный давно.

Надеюсь, это имеет смысл.

Теперь, к вашим практическим вопросам. Прошу прощения, вам нужно долго ждать запросов на включение. Не стесняйтесь обращаться ко мне лично (@jbaruch), если вы чувствуете, что это слишком долго, и я буду рад проверить, что происходит. Заявив, что запрос на включение является разовой процедурой на пакет. Как часто вы вводите новый пакет?

Как я уже говорил, очень вероятно, что у вас есть идентификаторы артефактов, которые должны быть объединены в один и тот же пакет (но, пожалуйста, играйте по правилам, описанным выше).В этом случае вы можете указать более широкий пакет в настройке 'build.sbt' publishTo, как в this example.

+0

Спасибо JBaruch за подробное объяснение, я никогда не думал о пакетах, которые имеют общие идентификаторы, но разные расписания релизов :) –

Смежные вопросы