2014-09-08 4 views
5

Это вопрос «Я делаю это правильно».Как использовать пользовательское репо Bintray (правильно) для зависимости от градиента?

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

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

     classpath name: 'gradle-my-plugin' 
} 

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

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

  1. Сделан Maven репо: MyStuff
  2. Сделан пакет: Gradle-мой-плагин
  3. сделал версию: 0,1
  4. закачанного файл для этой версии, но указано целевой путь, как "орг/БТВ/Gradle-мой-плагин/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. W/O, правильный путь не был установлен для загруженных файлов/банок (для версии).

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

+1

пока все хорошо. Но вы можете облегчить процесс, используя плагин gradle bintray для загрузки вашего плагина в bintray. Используя плагин, вам не нужно вручную создавать пути и т. Д. –

+0

Да, я знаком с плагинами (-ами); но еще не пробовал их.Также я знаком с некоторой болтовней, что, возможно, один из плагинов лишний (https://github.com/davidmc24/gradle-bintray-plugin), и что ванильная градация может (с mavenPublisher, возможно) публиковать в BinTray. Другой плагин (https://github.com/bintray/gradle-bintray-plugin) - это то, что вы предлагаете? Таким образом, я являюсь пользователем нексуса и счел неудобным указывать путь с моим «id группы»; в то время как nexus, похоже, скрывает это. Это заставляет меня думать, что я ошибаюсь в BinTray. – fwelland

ответ

5

Что вы сделали, это нормально, хотя использование the official Bintray plugin может сделать вашу жизнь намного проще. С каждым днем ​​все становится лучше, добавляя функции и делая все больше и больше работы для вас (например, он может лениво создать для вас пакет и версию, если они не существуют).

Еще одна вещь, которую следует учитывать, включает ваш пакет в jcenter. Одним из преимуществ этого включения будет a free account in oss.jfrog.org for your development process. Это бесплатная учетная запись Artifactory (like nexus, but so much better).

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

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

Here are the inclusion instructions.

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

+1

Так что моя самая большая забота заключалась в том, что я хотел, чтобы мои файлы сборки «client» имели нормальную информацию о градиенте. Я в порядке с futzing на этапе публикации, чтобы заставить его работать «естественно». Сказав это, я планирую выкопать плагин; теперь, когда я знаю, как основной процесс работает вручную. О соглашался с nexus v. Artifactory; Я считаю, что последнее намного легче работать. (О, и я планирую вставить его - когда он созревает еще немного). СПАСИБО ЗА ВАШ ОТЗЫВ. – fwelland

+0

Вы можете запросить включение даже для незрелого пакета (или пакета без версий вообще). Мы хотим помочь вам разработать его и предоставить вам oss.jfrog.org для этой цели, но только тогда, когда вы включены в jcenter. – JBaruch

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