Невозможно скомпилировать ThreeTenABP

Я пытаюсь использовать библиотеку Jake Wharton ThreeTenABP - https://github.com/JakeWharton/ThreeTenABP - для Функции даты и времени JSR310 в моем проекте Android. Основное преимущество этой библиотеки заключается в том, что у нее меньше накладных расходов на компиляцию, чем у Jodatime (http://www.joda.org/joda-time/) и threetenbp (https://github.com/ThreeTen/threetenbp ). Однако библиотека ThreeTenABP не компилируется в моем проекте. Я помещаю в свой build.gradle следующее:

compile 'org.threeten:threetenbp:1.3-SNAPSHOT'
compile 'com.jakewharton.threetenabp:threetenabp:1.0.0-SNAPSHOT'

И я получаю ошибку компиляции:

Ошибка: не удалось найти org.threeten: threetenbp: 1.3-SNAPSHOT. Требуется: MyApp: app: unspecified MyApp: app: unspecified> com.jakewharton.threetenabp: threetenabp: 1.0.0-SNAPSHOT Поиск в файлах build.gradle

Кто-нибудь раньше успешно использовал эту библиотеку в Android?


person IgorGanapolsky    schedule 14.07.2015    source источник
comment
Одно замечание о введении функций JSR-310 в Android: ThreetenBP не совсем то же самое, что java.time в Java-8. Например, календарь Хиджры основан на совершенно других алгоритмах / данных по сравнению с Java-8. Также общая поддержка i18n слабее.   -  person Meno Hochschild    schedule 15.07.2015


Ответы (1)


Это проблема с процессом сборки, когда невозможно загрузить зависимость.

Скорее всего, это вызвано тем, что вы не добавили репозитории снимков в свой проект, поскольку в файле Readme в репозитории указано < / а>.

Вы сможете решить эту проблему, добавив в файл верхнего уровня build.gradle следующее:

buildscript {
  repositories {
    mavenCentral()
    maven {
      url "https://oss.sonatype.org/content/repositories/snapshots"
    }
  }
  dependencies {
  }
}

Редактировать:

Комментарий был правильным, и проблема не в самом репозитории. Проблема в том, что org.threeten: threetenbp: 1.3-SNAPSHOT не существует ни в одном репозитории. (bintray или снимки)

Редактировать # 2:

Ознакомьтесь с этой проблемой в проекте.

JakeWharton прокомментировал 11 часов назад Вам нужен 1.3-SNAPSHOT ветки notzdb проекта ThreeTenBP.

Редактировать # 3:

На самом деле, я только что увидел, что это вы создали проблему :) Вам нужно будет собрать ее самостоятельно, поскольку она не размещена ни в одном репозитории:

$ git clone https://github.com/ThreeTen/threetenbp
$ cd ThreeTen/
$ git checkout no-tzdb
$ mvn clean install

Также стоит упомянуть, что для ThreeTen есть два отдельных проекта, последний из которых является активным, в котором есть ветка.

https://github.com/ThreeTen/threeten

https://github.com/ThreeTen/threetenbp

person Robert Estivill    schedule 14.07.2015
comment
Не правда! Ставлю maven{ url 'https://oss.sonatype.org/content/repositories/snapshots/' } - person IgorGanapolsky; 14.07.2015
comment
После того, как я выполню ваши шаги, я вижу: Установка E: \ git \ threetenbp \ target \ threetenbp-1.3-SNAPSHOT-no-tzdb.jar в C: \ Users \ Igor \ .m2 \ repository \ org \ threeten \ threetenbp \ 1.3 -SNAPSHOT \ threetenbp-1.3-SNAPSHOT-no-tzdb.jar /. Итак, что мне теперь делать, чтобы разместить эту зависимость на Sonatype? - person IgorGanapolsky; 14.07.2015
comment
Что ж, это зависит не от вас, а от команды, которая разрабатывает библиотеку. Пока у вас есть зависимость в вашем локальном репозитории, вы сможете использовать ее в своих проектах. Если вы хотите опубликовать свои библиотеки в Sonatype (или хотите переименовать и упаковать ThreeTen), вы можете прочитать intohand.com/blog/post/ - person Robert Estivill; 14.07.2015
comment
~ Пока у вас есть зависимость. Не правда. Я включил jar в свой каталог libs, но ThreeTenABP все еще жалуется, что ожидает снимок Sonatype !! - person IgorGanapolsky; 14.07.2015
comment
Включение jar-файла в Lib не означает, что Gradle знает о нем. Вы должны иметь его в локальном репозитории Maven ~ / .m2 /, чтобы Gradle знал, откуда его взять. Это базовое управление зависимостями в Maven / Gradle - person Robert Estivill; 14.07.2015
comment
Насколько это масштабируемое и удобное в обслуживании решение? Каждому разработчику моего проекта потребуется эта зависимость в своем каталоге ~ / .m2 /. Это отстой! - person IgorGanapolsky; 14.07.2015
comment
Тот факт, что библиотека зависит от не размещенной, в разрабатываемой версии другой библиотеки, актуален только для этого разработчика библиотеки. Если вы не хотите делать то же самое, не используйте это. Возможны следующие варианты: дождитесь, пока 1.3 станет окончательной и выпустит, измените вашу библиотеку, включите обе (310, 310abp и все зависимости) в виде jar-файлов в / libs или многие другие способы обойти это. - person Robert Estivill; 14.07.2015
comment
См. Здесь: twitter.com/JakeWharton/status/621400826523840512 310 1.3 только что выпущен, и вместе с ним 310ABP. Так что больше не нужно беспокоиться о размещении зависимостей, поскольку теперь он находится на Maven search.maven.org/#search%7Cga%7C1%7Ca%3A%22threetenbp%22 - person Robert Estivill; 15.07.2015