Scala 在工件名称中保留点

Scala 在工件名称中保留点,scala,sbt,Scala,Sbt,我有一个在工件名称中使用点的库,比如“org.scala refactoring.library”。使用项目名称定义,例如: name := "org.scala-refactoring.library" 当使用publish local时,它将转换为连字符,因此它将成为“org scala重构库” 如何保留已发布工件中的点 这似乎是发生在出版业而不是包装业。例如,以下内容无效: artifactName := { (sv, module, artifact) => s"${nam

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

name := "org.scala-refactoring.library"
当使用
publish local
时,它将转换为连字符,因此它将成为
“org scala重构库”

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


这似乎是发生在出版业而不是包装业。例如,以下内容无效:

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

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


如果您阅读了关于常春藤模式的内容:您可以看到这里有一个
[originalname]
选项,它可以满足您的需要。我的猜测是
[artifact]
(sbt现在使用的)可能正在逃避某些东西。

您可以通过显式定义
模块名称来覆盖该行为,例如:

moduleName := name.value

我想,你已经出版了
publishMavenStyle:=true
。尝试将其设置为
false
并发布常春藤样式。@laugedelic是的,这是正确的。我更喜欢保持maven风格的出版。