1

我来自 javscript,现在学习 scala 和 java 生态系统。在 javascript 中,它就像 npm install/yarn add 一样简单,但在 java 生态系统中对我来说似乎有点复杂。

我已经用 apache kafka 开始了 scala。然后学习了一点 scala 框架,例如 Play、akka、Sangria(graphql)。scala 框架与 sbt 配合得很好。当我需要在我的 sbt scala 项目中使用 Java 库时出现问题。或者一般来说,我不明白 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 或 yarn?)或者......我不知道...... sbt 似乎一些与“未解决的依赖...未找到”有关的问题,但除了 sbt 我无法在 Java 项目(Maven、gradle 或其他)中自由使用 Java 库 可能我是不了解 Java 生态系统的人。任何人都可以帮助解决这个问题。我是 Windows 10 64 位,IntelliJ IDEA 2017.2.5。我用 scala 2.12.4、sbt 1.0.3 和 maven modelVersion 4.0.0 和 gradle sourceCompatibility 1.8 做了 scala 项目

解决 了...我想通了。在你的 build.sbt 放这个。

resolvers += Resolver.jcenterRepo

我不是很清楚,但我认为... sbt 尝试在某个默认存储库中查找库(我不确定是哪一个)如果它找不到那是未找到的错误。所以我必须手动设置存储库。可能每个构建系统都有。

4

0 回答 0