Как использовать репозиторий пользователя Bintray (правильно) для зависимости от Gradle?

Это скорее вопрос «правильно ли я делаю».

Краткая предыстория: я создал плагин gradle (в отдельном проекте gradle / groovy). Я использую его в другом java-проекте. Клиентский проект ссылался на него примерно так:

buildScript
{
      flatDir {
            dirs '../my-gradle-plugin/build/libs'
      }

      classpath name: 'gradle-my-plugin'
}

Поэтому мне не нужна относительная ссылка на проект плагина (и не делать плагин частью клиента). Я думал, что посмотрю, смогу ли я поместить его в BinTray и называть его «настоящим» плагином.

Итак, настройте BinTray, и после долгих проб и ошибок я заставил его работать, но я не думаю, что правильно сделал. Вот что я сделал:

  1. Сделал репозиторий maven: MyStuff
  2. Создал пакет: gradle-my-plugin
  3. Сделал версию: 0.1
  4. загрузил файл для этой версии, но указал целевой путь, например "org / fhw / gradle-my-plugin / 0.1"

Мой блок buildScript выглядит так:

buildScript {
    repositories {
        maven {
            url 'http://dl.bintray.com/my-bintray-id/MyStuff
        }
    }    
    dependencies {
        classpath 'org.fhw:gradle-my-plugin:0.1'
   }
}

Что меня интересует, так это взлом, который я сделал с целью на BinTray. Без этого не было правильного пути для загруженных файлов / jar (для версии).

Так это правильный процесс для зависимостей BinTray и Gradle?


person fwelland    schedule 08.09.2014    source источник
comment
пока все в порядке. Но вы можете упростить процесс, используя плагин gradle bintray для загрузки вашего плагина в bintray. Используя плагин, вам не нужно будет вручную создавать пути и т. Д.   -  person Rene Groeschke    schedule 08.09.2014
comment
Да, я знаком с плагином (ами); но еще не пробовал. Также мне знакома болтовня о том, что, возможно, один из плагинов лишний (github.com/davidmc24/ gradle-bintray-plugin), и этот vanilla gradle может (возможно, с помощью mavenPublisher) публиковать в BinTray. Другой плагин (github.com/bintray/gradle-bintray-plugin) - это что вы предлагаете? Итак, я являюсь пользователем нексуса, и мне было неудобно указывать путь с моим «идентификатором группы»; а нексус, кажется, это скрывает. Это заставляет меня думать, что я делаю BinTray неправильно.   -  person fwelland    schedule 08.09.2014


Ответы (1)


То, что вы сделали, нормально, хотя использование официального плагина Bintray может значительно облегчить вашу жизнь. Он становится лучше с каждым днем, добавляя функции и делая для вас все больше и больше (например, он может лениво создать пакет и версию для вас, если их не существует).

Еще одна вещь, которую следует учитывать, - это включить ваш пакет в jcenter. Одним из преимуществ этого включения будет бесплатная учетная запись в oss.jfrog. org для вашего процесса разработки. Это бесплатная учетная запись Artifactory (как nexus, но намного лучше ).

Также обратите внимание, что вы можете включить свой плагин на портал плагинов Gradle. Как только вы это сделаете, использование вашего плагина сократится до

plugins {
  id "org.fhw.gradle-my-plugin" version "0.1"
}

Вот инструкции по включению.

P.S. Что касается идентификатора группы, который «скрывает» нексус - Bintray не ограничивается макетом артефактов Maven, вы можете развертывать файлы в любом макете, который вам нужен, поэтому вам необходимо указать путь при загрузке файлов через пользовательский интерфейс. Говоря о том, что, когда Bintray встречает pom-файл среди загруженных файлов, он автоматически устанавливает путь. Путь также является необязательным при использовании maven или maven-publish с плагином Bintray - он вычисляет путь по артефактам, когда становится ясно, что это файлы Maven.

person JBaruch    schedule 14.09.2014
comment
Так что меня больше всего беспокоило то, что я хотел, чтобы мои «клиентские» файлы сборки имели обычные файлы Gradle Deps. Я не против, чтобы на этапе публикации он работал «естественным образом». Сказав это, я планирую покопаться в плагине; теперь, когда я знаю, как работает основной процесс вручную. Ох согласился насчет nexus v. Artifactory; Я считаю, что с последним намного легче работать. (О, и я планирую его центрировать - когда он немного созреет). СПАСИБО ЗА ВАШ ОТЗЫВ. - person fwelland; 15.09.2014
comment
Вы можете запросить включение даже незрелого пакета (или пакета без версий вообще). Мы хотим помочь вам в его разработке и предоставить для этой цели oss.jfrog.org, но только если вы включены в jcenter. - person JBaruch; 15.09.2014