向Scala项目(sbt)添加依赖项

11

我想在Scala项目中使用一个库,这个库的名称是jerkson。我可能会在项目的基本目录下添加以下内容到build.sbt文件中:

libraryDependencies += "com.domain_example" % "library_name_test123" % "0.1.1"

但是我从哪里获取所有这些数据呢:域名、库名、版本?在https://github.com/randhindi/jerkson上没有这样的数据。

那我需要做什么才能使用它?

3个回答

10
这是一个指向Typesafe仓库的链接,这是由Typesafe官方维护的仓库
在搜索框中输入jerkson,即可显示所有托管于该仓库的相关项目。
您应该能够看到路径,例如:
com/codahale/jerkson_2.8.2/0.5.0

你可以将其分解为三个组件。
试试这个:
libraryDependencies += "com.codahale" % "jerkson_2.8.2" % "0.5.0"

如果您想要最新的集成版本,可以将latest.integration作为第三个参数使用。

libraryDependencies += "com.codahale" % "jerkson_2.8.2" % "latest.integration"

一般来说,我会首先尝试使用Maven仓库

这是 Maven 仓库的样子:

这很好,因为你可以看到一个 sbt 的选项卡,并且你可以直接将其复制到你的代码中。不幸的是,我没有在 Maven 中找到你想要的库。


我认为我在回答中提到的jerkson项目与github.com/randhindi/jerkson有关。如果您查看https://github.com/randhindi/jerkson/blob/master/src/main/java/com/codahale/jerkson/JsonSnakeCase.java中的包语句,我认为它们是相同的。 - Mingyu
但是你从哪里得到所有这些数据 “com.codahale”%“jerkson_2.8.2”%“0.5.0”,它在哪里写明了? - user266003
我已经更新了我的回答。你需要做的是点击typesafe repo,在搜索框中输入jerkson,这将显示与jerkson相关的项目列表。 - Mingyu
Maven仓库被认为是我应该尝试查找依赖项的第一个“官方”地方吗? - user266003
官方的仓库是Typesafe仓库。请参见此处:(http://www.playframework.com/documentation/2.1.1/Repositories)。顺便问一下,我的回答解决了你的问题吗? - Mingyu

3

根据您对其他答案的评论,我相信您希望直接将依赖项指定到github URL。这个问题在之前已经被问过。两个答案都是正确的,并且应该对您有用。


0
如果您不想调查构建配置,那么可以克隆存储库并执行“publish-local”命令。这将提供工件信息。同时还可以将工件添加到本地Ivy存储库中。在这种情况下:
[info]  published jerkson_2.10 to /home/ezh/.ivy2/local/jerkson/jerkson_2.10/0.1-SNAPSHOT/...

根据您的情况

"jerkson" %% "jerkson" % "0.1-SNAPSHOT"

或者

"jerkson" % "jerkson_2.10" % "0.1-SNAPSHOT"

该库是针对Scala 2.10构建的

完整日志:

ezh@devbox ~/ze $ git clone https://github.com/randhindi/jerkson.git
Cloning into 'jerkson'...
remote: Counting objects: 3093, done.
remote: Compressing objects: 100% (1203/1203), done.
remote: Total 3093 (delta 984), reused 2863 (delta 790)
Receiving objects: 100% (3093/3093), 436.47 KiB | 177 KiB/s, done.
Resolving deltas: 100% (984/984), done.
ezh@devbox ~/ze $ cd jerkson/
ezh@devbox ~/ze/jerkson $ sbt-0.12 publish-local
[info] Loading project definition from /home/ezh/ze/jerkson/project
[info] Updating {file:/home/ezh/ze/jerkson/project/}default-b33f9c...
[info] Resolving org.scala-sbt#precompiled-2_10_1;0.12.4-RC1 ...
[info] Done updating.
[info] Compiling 1 Scala source to /home/ezh/ze/jerkson/project/target/scala-2.9.2/sbt-0.12/classes...
[info] Set current project to jerkson (in build file:/home/ezh/ze/jerkson/)
[info] Updating {file:/home/ezh/ze/jerkson/}jerkson...
[info] Packaging /home/ezh/ze/jerkson/target/scala-2.10/jerkson_2.10-0.1-SNAPSHOT-sources.jar ...
[info] Wrote /home/ezh/ze/jerkson/target/scala-2.10/jerkson_2.10-0.1-SNAPSHOT.pom
[info] Resolving org.scala-lang#scala-library;2.10.0 ...
[info] Done packaging.
[info] Resolving org.hamcrest#hamcrest-core;1.1 ...
[info] downloading http://oss.sonatype.org/content/groups/public/com/fasterxml/jackson/core/jackson-core/2.1.1/jackson-core-2.1.1.jar ...
[info]  [SUCCESSFUL ] com.fasterxml.jackson.core#jackson-core;2.1.1!jackson-core.jar (2325ms)
[info] downloading http://oss.sonatype.org/content/groups/public/com/fasterxml/jackson/core/jackson-databind/2.1.1/jackson-databind-2.1.1.jar ...
[info]  [SUCCESSFUL ] com.fasterxml.jackson.core#jackson-databind;2.1.1!jackson-databind.jar (2351ms)
[info] downloading http://oss.sonatype.org/content/groups/public/org/mockito/mockito-all/1.9.0/mockito-all-1.9.0.jar ...
[info]  [SUCCESSFUL ] org.mockito#mockito-all;1.9.0!mockito-all.jar (7677ms)
[info] downloading http://oss.sonatype.org/content/groups/public/junit/junit/4.10/junit-4.10.jar ...
[info]  [SUCCESSFUL ] junit#junit;4.10!junit.jar (1337ms)
[info] downloading http://oss.sonatype.org/content/groups/public/com/fasterxml/jackson/core/jackson-annotations/2.1.1/jackson-annotations-2.1.1.jar ...
[info]  [SUCCESSFUL ] com.fasterxml.jackson.core#jackson-annotations;2.1.1!jackson-annotations.jar (1384ms)                                                                                   
[info] Done updating.                                                                                                                                                                         
[info] :: delivering :: jerkson#jerkson_2.10;0.1-SNAPSHOT :: 0.1-SNAPSHOT :: integration :: Sun Jun 02 09:22:19 MSK 2013                                                                      
[info]  delivering ivy file to /home/ezh/ze/jerkson/target/scala-2.10/ivy-0.1-SNAPSHOT.xml                                                                                                    
[info] Compiling 77 Scala sources and 1 Java source to /home/ezh/ze/jerkson/target/scala-2.10/classes...                                                                                      
[info] Generating Scala API documentation for main sources to /home/ezh/ze/jerkson/target/scala-2.10/api...                                                                                   
[info] 'compiler-interface' not yet compiled for Scala 2.10.0. Compiling...                                                                                                                   
[info]   Compilation completed in 10.168 s                                                                                                                                                    
[warn] there were 51 feature warnings; re-run with -feature for details                                                                                                                       
model contains 312 documentable templates                                                                                                                                                     
[warn] /home/ezh/ze/jerkson/src/main/scala/com/codahale/jerkson/util/scalax/rules/Rules.scala:67: Tag '@requires' is not recognised                                                           
[warn] /A factory for rules that apply to a particular context.                                                                                                                             
[warn] ^                                                                                                                                                                                      
[warn] two warnings found                                                                                                                                                                     
[info] Scala API documentation generation successful.                                                                                                                                         
[info] Packaging /home/ezh/ze/jerkson/target/scala-2.10/jerkson_2.10-0.1-SNAPSHOT-javadoc.jar ...                                                                                             
[info] Done packaging.                                                                                                                                                                        
[warn] there were 17 deprecation warnings; re-run with -deprecation for details                                                                                                               
[warn] there were 1 unchecked warnings; re-run with -unchecked for details                                                                                                                    
[warn] there were 51 feature warnings; re-run with -feature for details                                                                                                                       
[warn] three warnings found
[warn] Error reading API from class file : java.lang.UnsupportedClassVersionError: com/codahale/jerkson/JsonSnakeCase : Unsupported major.minor version 51.0
[info] Packaging /home/ezh/ze/jerkson/target/scala-2.10/jerkson_2.10-0.1-SNAPSHOT.jar ...
[info] Done packaging.
[info]  published jerkson_2.10 to /home/ezh/.ivy2/local/jerkson/jerkson_2.10/0.1-SNAPSHOT/poms/jerkson_2.10.pom
[info]  published jerkson_2.10 to /home/ezh/.ivy2/local/jerkson/jerkson_2.10/0.1-SNAPSHOT/jars/jerkson_2.10.jar
[info]  published jerkson_2.10 to /home/ezh/.ivy2/local/jerkson/jerkson_2.10/0.1-SNAPSHOT/srcs/jerkson_2.10-sources.jar
[info]  published jerkson_2.10 to /home/ezh/.ivy2/local/jerkson/jerkson_2.10/0.1-SNAPSHOT/docs/jerkson_2.10-javadoc.jar
[info]  published ivy to /home/ezh/.ivy2/local/jerkson/jerkson_2.10/0.1-SNAPSHOT/ivys/ivy.xml
[success] Total time: 56 s, completed 02.06.2013 9:22:48

这是关于编程的内容,请将其从英语翻译成中文。只返回翻译后的文本即可:没问题,但我想从Github上使用它,我该怎么做?我如何知道在build.sbt中要写什么? - user266003
我也从GitHub使用它。我执行 git clone https://github.com/randhindi/jerkson.git。你所说的“从GitHub使用它”是什么意思?你需要特别的东西吗? - Ezhik
我的意思是——不使用克隆。 - user266003
没有构件是不可能的。如果你想在不克隆的情况下使用它,那么某人(randhindi?)必须将构件发布到Ivy或Maven目录结构并将其推送到GitHub。请告诉我如何将GitHub上的原始、未编译的源代码用作依赖项?在我看来,这是不可能的。即使是SBT本身在构建之前也会检出插件源代码。 - Ezhik
我必须将它发布到/home/my_name吗? - user266003
1
你可以将它克隆到任何地方,但是 publish-local 命令会将结果保存到位于你主目录下的 .ivy2 目录中(通常如此)。 - Ezhik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接