我有一个在工件名称中使用点的库,如"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
答案 0 :(得分:1)
这似乎是常春藤行为。您可以指定用于发布的自定义常春藤模式。
如果您阅读常春藤图案:http://ant.apache.org/ivy/history/latest-milestone/concept.html您可以看到[originalname]
选项可以在此处执行您想要的操作。我的猜测是[artifact]
(sbt现在使用的)可能是逃避的事情。
答案 1 :(得分:1)
您可以通过明确定义moduleName
来覆盖行为,例如像这样:
moduleName := name.value