Как удалить постфикс _ 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