www org scala sbt

org - ¿Cómo se elimina el postfix_<scala-version> de los artefactos construidos+publicados con simple-build-tool?



scala sbt install windows (4)

Después de ver cómo se implementó Artifact.artifactName y finalmente se utilizó, parece que la forma de desactivarlo es especificar "false" para la configuración de CrossPath. Esto está documentado en uno de los ejemplos de configuración rápida en la wiki xsbt.

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

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

Estoy construyendo algunos proyectos solo en Java usando simple-build-tool. Cuando publico los artefactos de los proyectos usando, por ejemplo, sbt publish-local, los artefactos resultantes tienen la versión de Scala añadida a su nombre. Con un proyecto de Scala esto tendría sentido, pero dado que estos son solo proyectos de Java, no es así. ¿Cómo desactivo esta postfijación de la versión de Scala? ¿O puedo?

Como referencia, estoy usando sbt 0.11.1, Scala 2.9.1 y un archivo .sbt para la configuración de compilación (aunque cambiar a una configuración de proyecto completa no sería un problema).


Esto está documentado en la wiki xsbt en Modificación de artefactos predeterminados . Desde esa página:

Por ejemplo, para producir un nombre mínimo sin un clasificador o una ruta cruzada:

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


Sé que esta pregunta es antigua, pero me he estado haciendo la misma pregunta, y de hecho hay una manera muy simple de hacer esto ahora. Todo lo que tienes que hacer es declarar la dependencia usando % vez de %% :

%: Un método utilizado para construir una ID de Ivy Module a partir de las cadenas que suministra.

%%: cuando se utiliza después de groupID, automáticamente agrega la versión de Scala de su proyecto (como _2.10) al final del nombre del artefacto.

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


Si bien la respuesta aceptada es estrictamente correcta, nunca debe establecer crossVersions en false en los artefactos de Scala publicados públicamente. La versión incrustada de scala es una característica de compatibilidad importante, ya que las diferentes versiones de las bibliotecas de Scala pueden no ser compatibles con binarios.

Solo establezca crossVersions en false para proyectos, como los de la pregunta, que son estrictamente solo de Java.