我是一个正在学习Maven的java / maven / scala noob。这看起来像是How to know which artifact to get的重复,但我认为不是。 假设我想获得像scala编译器这样的特定依赖/插件,我去maven repo
http://mvnrepository.com/open-source/scala-compilers
我看到两个标记为scala编译器的链接。点击它们,我看到了
http://mvnrepository.com/artifact/org.scala-lang/scala-reflect
和
http://mvnrepository.com/artifact/org.scala-lang/scala-compiler
它们都标记为scala编译器,但有人说反映。 那么,它们都是编译器,还是什么?据推测,编译器就是它所说的,但有什么反映?为什么它在编译器下?
最重要的是,这就是我的问题,而不是scala本身,这是我对主要的maven repo如何标记事物的误解,还是他们犯了错误?
编辑 Rafael Saraiva:有用&接受了,谢谢。
Alextsc:会读,ta。 Scala似乎在过去一年里做了一些严重的增长!
Mifeet:真的吗?非常有趣,会读,谢谢。
答案 0 :(得分:1)
虽然它们都标记为scala编译器并且它们共享相同的groupId org.scala-lang
,但您必须始终注意artifactId,它是唯一标识库/包(它是maven中的工件)的唯一标识。
更确切地说,maven依赖关系由三件事确定:
groupId
- >两人分享org.scala-lang ArtifactId
- >一个是scala-reflect,另一个是scala-compiler version
- >他们可能有并行版本,或者可能没有然后确定maven依赖性:
groupId:artifactId:version
例如:org.scala-lang:scala-compiler:2.11.8
如果你得到了所有这些,你可以毫不费力地区分不同的依赖