Добавьте зависимость только от времени компиляции в sbt
Я хотел бы добавить зависимость к проекту sbt, который используется только для компиляции. Он не должен находиться в пути к классу среды выполнения и не должен быть виден в любой форме в опубликованном POM.
Идея состоит в том, чтобы добавить только заглушку библиотеки (OrangeExtensions ), так что проект может быть скомпилирован на любой платформе, а не только OS X.
Возможно ли это как-то так:
libraryDependencies += "com.yuvimasory" % "orange-extensions" % "1.3.0" % ???
?
1 ответ:
Можно создать пользовательскую конфигурацию зависимостей Для этого (на самом деле, это становится настолько распространенным, когда вы используете частные макросы в своем проекте, я бы хотел, чтобы SBT предоставил один).
В
build.sbt:Эта зависимость не появится в// a 'compileonly' configuation ivyConfigurations += config("compileonly").hide // some compileonly dependency libraryDependencies += "commons-io" % "commons-io" % "2.4" % "compileonly" // appending everything from 'compileonly' to unmanagedClasspath unmanagedClasspath in Compile ++= update.value.select(configurationFilter("compileonly"))pom.xml, порожденныхpublishи друзьями.Существует почти такая конфигурация: конфигурация
provided. За исключением того, чтоprovidedзаканчивается вpom.xmlкак зависимость с областьюprovided. Кроме того,providedозначает "сама среда выполнения обеспечивает это во время выполнения", а не"это не нужно во время выполнения".