How do you remove the _<scala-version> postfix from artifacts built+published with simple-build-tool?

Solution 1:

After looking around how Artifact.artifactName is implemented and ultimately used it seems that the way to turn this off is to specify false for the crossPath setting. This is documented in one of the quick configuration examples on the xsbt wiki.

http://www.scala-sbt.org/release/docs/Examples/Quick-Configuration-Examples

// disable using the Scala version in output paths and artifacts
crossPaths := false

Solution 2:

I know this question is old, but I've been asking myself the same question, and there's actually a very simple way to do this now. All you have to do is to declare the dependency using % instead of %%:

%: A method used to construct an Ivy Module ID from the strings you supply.

%%: When used after the groupID, it automatically adds your project’s Scala version (such as _2.10) to the end of the artifact name.

http://alvinalexander.com/scala/sbt-how-to-manage-project-dependencies-in-scala

Solution 3:

This is documented on the xsbt wiki under Modifying default artifacts. From that page:

For example, to produce a minimal name without a classifier or cross path:

artifactName := { (sv: ScalaVersion, module: ModuleID, artifact: Artifact) =>
  artifact.name + "-" + module.revision + "." + artifact.extension
}

Solution 4:

While the accepted answer is strictly correct, you should never set crossVersions to false on publicly published Scala artifacts. The embedded scala version is an important compatibility feature, since different versions of the Scala libraries may not be binary compatible.

Only set crossVersions to false for projects, like those in the question, that are strictly Java only.