Java-зависимость (Maven, Gradle) и Scala(SBT)
Я со стороны javscript и сейчас изучаю scala и java экосистему. В javascript это было просто, как npm install/yarn add, но здесь, в java, экосистема кажется мне немного сложной.
Я начал скала с Apache Kafka. а затем немного изучил фреймворк scala, такой как Play, akka, Sangria(graphql). фреймворки Scala отлично работают с sbt. Проблема возникает, так как мне нужно использовать библиотеки Java в моем проекте sbt scala. или вообще я не понимаю, как работает система сборки Java. Например, если я хочу добавить Apache kafka в любую систему.(Maven, gradle, sbt)
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>1.0.0</version>
</dependency>
compile group: 'org.apache.kafka', name: 'kafka-clients', version: '1.0.0'
libraryDependencies += "org.apache.kafka" % "kafka-clients" % "1.0.0"
Я проверил Maven и SBT, и это сработало. вероятно, gradle тоже.
Этот не работает. https://github.com/apollographql/apollo-android
Для проекта maven ( http://mvnrepository.com/artifact/com.apollographql.apollo/apollo-runtime) работают версии с "центральными" репозиториями (например, версия 0.4.1), однако версии с репозиториями "ApolloGraphQl" не работают работа (например, версия 0.4.3)
<dependency>
<groupId>com.apollographql.apollo</groupId>
<artifactId>apollo-runtime</artifactId>
<version>0.4.3</version> -->!!ERROR HERE!! Dependency "com.apollographql.apollo:apollo-runtime:0.4.3" not found
<type>pom</type>
</dependency>
Для gradle проекта. Работает только когда я ставлю jcenter() в раздел репозиториев
repositories {
jcenter()
}
compile 'com.apollographql.apollo:apollo-runtime:0.4.3'
Для проекта Sbt. Это так же, как Maven. 0.4.1 работает (центральное репо) и 0.4.3 не работает (ApolloGraphQl репо)
Еще один, https://github.com/sacOO7/socketcluster-client-java Этот gradle работает, но maven и sbt не работают для всех версий. Я не смог найти этот пакет в Maven, но здесь на https://bintray.com/sacoo7/Maven/socketcluster-client
Для меня это довольно большая проблема... Я не знаю, есть ли один-единственный источник и много способов его построить (например, npm или пряжа?) Или... я не знаю.. sbt выглядит как некоторые проблемы с "неразрешенной зависимостью... не найдены", кроме sbt. Я не мог свободно использовать библиотеки Java в проектах Java (Maven, Gradle или что-то еще). Вероятно, я тот, кто не понимает экосистему Java. Может кто-нибудь помочь с этой проблемой. У меня windows 10 64bit, IntelliJ IDEA 2017.2.5. Я сделал проект scala с scala 2.12.4, sbt 1.0.3 и maven modelVersion 4.0.0 и gradle sourceCompatibility 1.8
Решено ок... разобрался. на свой build.sbt поставь этот.
resolvers += Resolver.jcenterRepo
Я не очень ясно, но я думаю... sbt пытается найти библиотеки в некотором репозитории по умолчанию (я не уверен, какой именно) Если он не может определить, что это не найденная ошибка. поэтому я должен вручную установить репозитории. вероятно, каждая система сборки имеет это.