зависимость java (maven, gradle) и scala (sbt)

Я со стороны javascript и сейчас изучаю экосистему scala и java. В javascript это было просто, как npm install/yarn add, но здесь, в экосистеме java, мне это кажется немного сложным.

Я начал scala с 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), версии с репозиториями «Central» работают (например, версия 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>

Для градиентного проекта. Это работает только тогда, когда я помещаю jcenter() в раздел репозиториев

repositories { 
    jcenter()
  }
compile 'com.apollographql.apollo:apollo-runtime:0.4.3'

Для проекта СБТ. Это то же самое, что мавен. 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 64 бит, 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 пытается найти библиотеки в каком-то репозитории по умолчанию (я не уверен, в каком). Если он не может найти, это ошибка не найдена. поэтому я должен вручную установить репозитории. вероятно, каждая система сборки имеет это.


person Roniel    schedule 05.01.2018    source источник
comment
Вашу проблему легко решить, если вы что-то понимаете в Maven и зависимостях. Средства сборки Java работают нормально. Вам нужно лучше понять их. Пусть ваш проект Java опубликует JAR-файл в Maven, чтобы ваш проект Scala мог его использовать. Это просто.   -  person duffymo    schedule 05.01.2018
comment
В моем случае мне не нужен такой стиль... когда я искал, я мог добавить зависимость по ссылке на репозиторий github или загрузить ее и добавить зависимость по локальному репо. Я чувствую, что это похоже на взлом ... Мне нужно более общее решение, которое я хочу использовать в своем sbt. все равно....проблема решена   -  person Roniel    schedule 06.01.2018
comment
Не взлом. Я преодолею это нежелание.   -  person duffymo    schedule 06.01.2018