Как использовать только одну библиотеку 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? Это то, что я использую, и это хорошо работает как с вехой, так и с ночными сборками.