如果它们看起来几乎完全相同,如何有效区分工件

时间:2016-05-11 13:32:04

标签: scala maven

我是一个正在学习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:真的吗?非常有趣,会读,谢谢。

1 个答案:

答案 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

如果你得到了所有这些,你可以毫不费力地区分不同的依赖