Как удалить постфикс _ <scala-version> из артефактов, собранных + опубликованных с помощью simple-build-tool? - PullRequest
64 голосов
/ 28 ноября 2011

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

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

Ответы [ 4 ]

84 голосов
/ 28 ноября 2011

Посмотрев, как реализован и в конечном итоге используется 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
9 голосов
/ 14 июля 2017

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

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

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

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

9 голосов
/ 28 ноября 2011

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

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

artifactName := { (sv: ScalaVersion, module: ModuleID, artifact: Artifact) =>
  artifact.name + "-" + module.revision + "." + artifact.extension
}
5 голосов
/ 03 февраля 2014

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...