Ссылка на аннотацию Scala в ScalaDoc

#scala #scaladoc

Вопрос:

В ScalaDoc я хочу иметь ссылку на аннотацию из библиотеки: дискриминатор.

Мой СкалаДок:

 /** Trait must be marked with [[json.schema.discriminator]] annotation. */
 

Но генерация ScalaDoc завершается со следующей ошибкой:

 Could not find any member to link for "json.schema.discriminator".
 

UPD:
Оказалось, что ошибки были из -Xfatal-warnings -за опции scalac.

Как только стало ясно, я нашел плагин sbt-api-сопоставления SBT, который разрешает все внешние ссылки с помощью javadoc.io.

Комментарии:

1. Конечно, я должен это сделать, потому что я использую эту аннотацию. Вероятно, проблема здесь в том, что аннотация (в стиле Scala) должна начинаться со строчной буквы.

2. К сожалению, нет: аннотации дискриминатора находятся в пакете json.schema. Поэтому я указываю полное имя.

Ответ №1:

Вы, вероятно, не найдете его, потому что вы не импортировали правильный пакет. Пожалуйста, обратите внимание, что json.schema.discriminator класс является частью "scala-jsonschema-core" пакета.

Поэтому вам необходимо добавить в свой build.sbt :

 name := "StackOverflow"
version := "0.1"
scalaVersion := "2.13.6"

libraryDependencies  = "com.github.andyglow" %% "scala-jsonschema-core" % "0.7.6"
libraryDependencies  = "com.github.andyglow" %% "scala-jsonschema-core" % "0.7.6" classifier "javadoc"
 

Тогда вы можете использовать его так же, как вы пытались:

 /** Trait must be marked with [[json.schema.discriminator]] annotation. */
 

введите описание изображения здесь

Тогда sbt doc работает:

введите описание изображения здесь

Комментарии:

1. И теперь все стало более ясным. Спасибо. Оказалось, что у меня включена опция-Xfatal-предупреждения scalac. Без этого ScalaDoc-это просто предупреждение.