Как использовать только одну библиотеку scala для maven/eclipse/scala

Я настроил проект на использование scala/maven/Eclipse. Поскольку мне нужна библиотека scala на пути сборки, и в scalatest также используется собственная библиотека scala, я получаю это предупреждение:

В пути сборки найдено несколько библиотек scala, все с совместимые версии. Это не оптимальная конфигурация, попробуйте ограничиться одной библиотекой scala в пути сборки.

Я не думаю, что могу удалить это предупреждение, поскольку мне нужны обе библиотеки - одна для Maven, другая для Eclipse. Это, кажется, не вызывает никаких проблем, так что я просто должен принять его? Есть ли альтернативная конфигурация, которая использует только одну библиотеку scala для Maven и Eclipse?

Если я удалю библиотеку scala из проекта, я получаю сообщение об ошибке:

Невозможно найти библиотеку scala в пути к классам. Проверьте путь сборки!

По какой-то причине Eclipse требует, чтобы библиотека scala находилась на пути сборки, даже если она уже доступна как зависимость от Maven.

Ответ 1

Не о чем беспокоиться. Eclipse предупреждает вас, что у вас есть несколько scala-library.jar в вашем пути к классам, но пока они являются одной и той же версией, это не имеет значения.

Если один из них отклонился (например, набрав номер версии Scala в вашем файле pom), у вас возникнут проблемы: в зависимости от порядка прохождения классов, IDE будет выбирать классы из одного или другой, и вы можете получить разные результаты при построении в командной строке.

Возвращаясь к вашей настройке, вы можете

  • удалите контейнер Scala Library classpath из ваших проектов Eclipse, оставив только банку, добавленную maven.
  • игнорировать предупреждение

Ответ 2

Предполагая, что вы используете предустановленный Eclipse Indigo с Scala 2.9 и соответствующим плагином Scala? Если это причина, по которой вам нужно использовать эту библиотеку, возможно, подумайте об использовании Eclipse Juno? Это то, что я использую, и это хорошо работает как с вехой, так и с ночными сборками.