Как удалить постфикс _ w60> -version> из артефактов, созданных +, опубликованных с помощью простого инструмента сборки?

Я создаю несколько проектов только для Java, используя инструмент простой сборки. Когда я публикую артефакты из проектов, используя, скажем, sbt publish-local, тогда полученные артефакты имеют версию Scala, добавленную к их имени. С проектом Scala это имеет смысл, но поскольку это проекты только на Java, это не так. Как отключить это постфиксацию версии Scala? Или я могу?

Для справки я использую sbt 0.11.1, Scala 2.9.1 и файл .sbt для конфигурации сборки (хотя переход к полной конфигурации проекта не будет проблемой).

Ответ 1

Посмотрев, как Artifact.artifactName реализовано и в конечном итоге используется, кажется, что способ отключить это - указать false для параметра crossPath. Это описано в одном из примеров быстрой конфигурации в вики xsbt.

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

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

Ответ 2

Это описано в вики xsbt в разделе Изменение артефактов по умолчанию. С этой страницы:

Например, чтобы создать минимальное имя без классификатора или перекрестного пути:

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

Ответ 3

В то время как принятый ответ строго правильный, вы никогда не должны устанавливать crossVersions в false публично опубликованные артефакты Scala. Встроенная версия Scala является важной функцией совместимости, поскольку разные версии библиотек Scala не могут быть совместимы с двоичными файлами.

Установите только crossVersions в false для проектов, как в вопросе, которые строго предназначены только для Java.

Ответ 4

Я знаю, что этот вопрос старый, но я задавал себе тот же вопрос, и на самом деле очень простой способ сделать это сейчас. Все, что вам нужно сделать, это объявить зависимость с помощью % вместо %%:

%: метод, используемый для создания идентификатора модуля Ivy из строк, которые вы поставка.

%%: при использовании после идентификатора groupID автоматически добавляется ваш проектов Scala (например, _2.10) до конца артефакта имя.

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