У меня есть проект maven, который строит две банки как артефакты. Номер версии равен 0,7, а один артефакт построен по умолчанию, а второй имеет классификатор. Таким образом, в моем репозитории они выглядят так:
Tue Jun 10 08:06:12 MST 2014 14915 gokenizer-0.7.pom
Tue Jun 10 08:06:12 MST 2014 40 gokenizer-0.7-core.jar.sha1
Tue Jun 10 08:06:12 MST 2014 40 gokenizer-0.7.pom.sha1
Tue Jun 10 08:06:12 MST 2014 32 gokenizer-0.7.jar.md5
Tue Jun 10 08:06:12 MST 2014 32 gokenizer-0.7.pom.md5
Tue Jun 10 08:06:12 MST 2014 37969843 gokenizer-0.7.jar
Tue Jun 10 08:06:12 MST 2014 41887392 gokenizer-0.7-core.jar
Tue Jun 10 08:06:12 MST 2014 32 gokenizer-0.7-core.jar.md5
Tue Jun 10 08:06:12 MST 2014 40 gokenizer-0.7.jar.sha1
Как вы можете видеть, в банке с классификатором есть "ядро" в качестве его классификатора.
Путь к репозиторию:
http://myhostname/plugin/repository/project/DomainIQCore/LastSuccessful/repository/com/example/domain/gokenizer/0.7/
Все хорошо? Итак, как я могу указать, что я хочу использовать банку с "основным" классификатором при создании моего проекта?
В моем файле build.scala я попробовал это:
libraryDependencies ++= Seq(
"com.example.domain" % "gokenizer" % "0.7" % "core"
),
Но затем я получаю эту ошибку:
java.lang.IllegalArgumentException: Cannot add dependency 'com.example.domain#gokenizer;0.7' to configuration 'core' of module com.example#domainiq_2.10;0.1.0-SNAPSHOT because this configuration doesn't exist!
И когда я пробую это:
libraryDependencies ++= Seq(
"com.example.domain" % "gokenizer" % "0.7-core"
),
Он явно строит путь к хранилищу неправильно:
http://myhostname/plugin/repository/project/DomainIQCore/LastSuccessful/repository/com/example/domain/gokenizer/0.7-core/gokenizer-0.7-core.pom
Очевидно, я должен делать что-то неправильно. Я думал, что первый способ (с 4-м полем как "ядро") был таким, но я понятия не имею, что означает "потому что эта конфигурация не существует". Поскольку он, похоже, даже не пытается попасть в репозиторий, кажется, что я должен сказать SBT, что означает "ядро"? Это не имеет смысла для меня, потому что я думал, что это всего лишь часть пути, а не "конфигурация" как таковая.
Когда я удаляю 4-е поле, он правильно получает версию неклассификатора jar, поэтому я знаю, что репозиторий существует и работает...
Помогите?
Конечно, как всегда бывает, поставите вопрос и найдите ответ;)
Высказывание "классификатора" так много раз заставляло меня попробовать другой поиск в Великой Google Machine, который дал мне ответ.
"com.example.domain" % "gokenizer" % "0.7" classifier "core"
Не знак процента. "классификатор" в качестве ключевого слова. Не имел представления. Теперь он компилируется.