在工件名称中保留点

时间:2014-03-03 12:42:24

标签: scala sbt

我有一个在工件名称中使用点的库,如"org.scala-refactoring.library"。使用项目名称定义,例如:

name := "org.scala-refactoring.library"

使用publish-local时会将其转换为连字符,因此会变为"org-scala-refactoring-library“。

如何保留已发布工件中的点?


这似乎是在出版而非包装中发生的事情。例如,以下内容无效:

artifactName := { (sv, module, artifact) =>
  s"${name.value}_${sv.binary}-${module.revision}.${artifact.extension}"
}

打包为

target/scala-2.11.0-RC1/org.scala-refactoring.library_2.11.0-RC1-0.6.2-SNAPSHOT.jar

但它仍然发布到

~/.ivy2/local/org.scala-refactoring/org-scala-refactoring-library_2.11.0-RC1/0.6.2-SNAPSHOT

2 个答案:

答案 0 :(得分:1)

这似乎是常春藤行为。您可以指定用于发布的自定义常春藤模式。

如果您阅读常春藤图案:http://ant.apache.org/ivy/history/latest-milestone/concept.html您可以看到[originalname]选项可以在此处执行您想要的操作。我的猜测是[artifact](sbt现在使用的)可能是逃避的事情。

答案 1 :(得分:1)

您可以通过明确定义moduleName来覆盖行为,例如像这样:

moduleName := name.value