你如何从构build+使用simple-build-tool发布的工件中删除_ <scala-version>后缀?
我正在使用简单的构build工具来构build一些Java-only项目。 当我使用sbt publish-local发布项目中的工件时,生成的工件将Scala版本附加到他们的名字上。 对于Scala项目来说,这是有道理的,但是由于这些只是Java项目,所以没有。 我将如何禁用Scala版本的这个后缀? 或者我可以吗?
作为参考,我使用sbt 0.11.1,Scala 2.9.1和一个.sbt文件进行构buildconfiguration(尽pipe转移到完整的项目configuration将是没有问题的)。
在查看Artifact.artifactName如何实现并最终被使用之后,似乎closures这个方法的方法是为crossPath设置指定false。 这在xsbt wiki上的一个快速configuration示例中有logging。
http://www.scala-sbt.org/release/docs/Examples/Quick-Configuration-Examples
// disable using the Scala version in output paths and artifacts crossPaths := false
这在修改默认工件的xsbt wiki中有logging。 从该页面:
例如,要生成没有分类器或交叉path的最小名称:
artifactName := { (sv: ScalaVersion, module: ModuleID, artifact: Artifact) => artifact.name + "-" + module.revision + "." + artifact.extension }
虽然接受的答案是严格正确的,但您绝对不应该在公开发布的Scala工件crossVersions
设置为false
。 embedded式scala版本是一个重要的兼容性function,因为不同版本的Scala库可能不是二进制兼容的。
只为项目设置crossVersions
为false
,就像问题中那些严格Java的项目一样。
我知道这个问题很老,但我一直在问自己同样的问题,现在有一个非常简单的方法。 你所要做的就是用%
代替%%
声明依赖关系:
%:用于从您提供的string构build常春藤模块ID的方法。
%%:在groupID之后使用时,会自动将项目的Scala版本(如_2.10)添加到工件名称的末尾。
http://alvinalexander.com/scala/sbt-how-to-manage-project-dependencies-in-scala