Ответ 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
означает "сама среда выполнения предоставляет это во время выполнения", а не "это не требуется во время выполнения".