2016-03-15 1 views
1

У меня есть 3 транзитно зависимых проекта для загрузки в bintray из gradle, проект 1 & 2 являются jar, а проект 3 - aar, который использует другой локальный аар, который мы можем 't положить в публичный репозиторий.Как загрузить локальную библиотеку (aar) в качестве части зависимости от Bintray

Я загрузил проекты 1 и 2 в bintray, но я застрял в том, как идти о третьем проекте. У меня есть возможность выдавать третью библиотеку нашему клиенту, чтобы включить туда проект, но я не могу нажать на bintray, потому что третий проект зависит от этой библиотеки.

Есть ли способ подтолкнуть его к bintray без добавления третьего проекта в качестве зависимости, в то время как запрос проекта для сторонней библиотеки.

+1

вы можете использовать ключевое слово 'provided' вместо' compile' при добавлении его как зависимости, а затем предоставить аар как файл вашему клиенту, убедившись, что lib является необходимой зависимостью для третьего проекта. –

+0

Спасибо Radix, ваше предложение работало как прелести –

ответ

1

После Radix предложение, я был в состоянии выдвинуть 3-й проект bintray, я изменил при условии из компиляции, а также изменить некоторые из конфигураций

`configurations { 
     provided 
    } 
    sourceSets { 
    main { compileClasspath += configurations.provided } 
    } 
    dependencies { 
    provided '...' 
    }` 

, и пользователь может легко вытащить из репозиторий.

0

Bintray не ограничивается артефактами OSS (или даже публичными). Вы можете иметь частный репозиторий на Bintray с вашим приватным ааром.

Что касается общественного ара, который зависит от частного, и можно ли удалить зависимость, то он ставит вопрос на вопрос, является ли зависимость от частного aar действительно обязательным? Перейдут ли вещи с ошибками NoClassDefFound, если частный авар не будет в pathpath? Если да, ответ - нет - вы не можете распространять публичный аран без зависимости. Если это не обязательно, вам нужно отредактировать метаданные публичного аара, удалив зависимость, и вы готовы к работе.