Вопрос по scala, slf4j, sbt – Как исключить ведение общего журнала из проекта scala / sbt / slf4j?

41

Мой проект scala / sbt использует grizzled-slf4j и logback. Сторонняя зависимость использует Apache Commons Logging.

В Java / Maven я бы использовал jcl-over-slf4j и logback-classic, чтобы я мог использовать logback в качестве единого бэкэнда ведения журнала.

Я бы также исключил зависимость от общего достояния, которую сторонняя библиотека могла бы использовать для запуска sbt. Я делаю следующее в Maven (что рекомендуетсяhttp://www.slf4j.org/faq.html#excludingJCL):

<dependency>
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging</artifactId>
    <version>1.1.1</version>
    <scope>provided</scope>
</dependency>

И вопрос в том, как сделать то же самое с sbt?

Ваш Ответ

4   ответа
14

мостей на уровне проекта:

excludeDependencies += "commons-logging" % "commons-logging"
4

libraryDependencies += "foo" % "bar" % "0.7.0" exclude("commons-logging","commons-logging")

или же

libraryDependencies += "foo" % "bar" % "0.7.0" excludeAll(ExclusionRule(organization = "commons-logging"))
61

вероятно, будет работать, но не приведет к загрузке ни одной из зависимостей сторонних библиотек. Если вы хотите исключить только одно использованиеexclude.

libraryDependencies += "foo" % "bar" % "0.7.0" exclude("org.baz", "bam")

или же

... excludeAll( ExclusionRule(organization = "org.baz") ) // does not work with generated poms!
Документация для этого здесь:scala-sbt.org/release/docs/Detailed-Topics/…
Это на самом делеExclusionRule и неExclusionRules
Оно работает. И мое окончательное решениеlibraryDependencies ++= Seq(...).map(_.exclude("commons-logging", "commons-logging")) wks
спасибо исправлено
4

intransitive Ваша сторонняя библиотечная зависимость, например

libraryDependencies += "foo" %% "bar" % "1.2.3" intransitive
Как сказал drexin, извините, причина может привести к проблемам, когда у вас есть более чем одна сторонняя зависимость.
Это решение действительно сработало для меня (убрал все сторонние зависимости для 1 явной зависимости).

Похожие вопросы