Bug 48076 - scaladoc не генерирует документацию html
Summary: scaladoc не генерирует документацию html
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: scala (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: viy
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-10-19 17:37 MSK by Nikolai Zurabishvili
Modified: 2023-10-19 17:37 MSK (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nikolai Zurabishvili 2023-10-19 17:37:38 MSK
В сизифе:
scala-library-2.13.9-alt3
scala-2.13.9-alt3

В p10 
scala-library-2.13.9-alt0.p10.1
scala-2.13.9-alt0.p10.1

Стенды (сизиф и p10):
kworkstation-10-2-x86-64
kworkstation-10-2-x86-64
На остальных скорее всего аналогично

Шаги:
1) Создать тестовый файл для проверки scaladoc:

$ mkdir testscaladoc && cd testscaladoc
$ cat > TestScaladoc.scala <<'EOF'
package com.acme.foo

/**
  * A class to represent a “human being.”
  *
  * Specify the `name`, `age`, and `weight` when creating a new `Person`,
  * then access the fields like this:
  * {{{
  * val p = Person("Al", 42, 200.0)
  * p.name
  * p.age
  * p.weight
  * }}}
  *
  * Did you know: The [[alvin.Employee]] extends this class.
  *
  * @constructor Create a new person with a `name`, `age`, and `weight`.
  * @param name The person's name.
  * @param age The person's age.
  * @param weight The person's weight.
  * @author Alvin Alexander
  * @version 1.0
  * @todo Add more functionality.
  * @see See [[http://alvinalexander.com alvinalexander.com]] for more
  * information.
  */
@deprecated("The `weight` field is going away", "1.0")
class Person (var name: String, var age: Int, var weight: Double) {

  /**
   * @constructor This is an auxiliary constructor. Just need a `name` here.
   */
  def this(name: String) =
    this(name, 0, 0.0)

  /**
   * @return Returns a greeting based on the `name` field.
   */
  def greet = s"Hello, my name is $name"
}

/**
  * @constructor Create a new `Employee` by specifying their `name`, `age`,
  * and `role`.
  * @param name The employee’s name.
  * @param age The employee’s age.
  * @param role The employee’s role in the organization.
  * @example {{{val e = Employee("Al", 42, "Developer")}}}
  */
class Employee(name: String, age: Int, role: String) extends Person(name, age, 0)
{
  /**
   * @throws boom Throws an Exception 100% of the time, be careful.
   */
  @throws(classOf[Exception])
  def boom = throw new Exception("boom")

  /**
   * @return Returns a greeting based on the `other` and `name` fields.
   * @param other The name of the person we're greeting.
   */
  def greet(other: String) = s"Hello $other, my name is $name"
}

EOF


2) $ scaladoc TestScaladoc.scala


Ожидаемый результат:
В папке появились html файлы включая файл index.html с документацией

Фактический результат:
Exception in thread "main" java.lang.AssertionError: assertion failed: /scala/tools/nsc/doc/html/resource/lib/class.svg
        at scala.Predef$.assert(Predef.scala:279)
        at scala.tools.nsc.doc.html.HtmlFactory$$anon$1.<init>(HtmlFactory.scala:84)
        at scala.tools.nsc.doc.html.HtmlFactory.copyResource$1(HtmlFactory.scala:81)
        at scala.tools.nsc.doc.html.HtmlFactory.$anonfun$generate$1(HtmlFactory.scala:121)
        at scala.tools.nsc.doc.html.HtmlFactory.$anonfun$generate$1$adapted(HtmlFactory.scala:121)
        at scala.collection.immutable.List.foreach(List.scala:333)
        at scala.tools.nsc.doc.html.HtmlFactory.generate(HtmlFactory.scala:121)
        at scala.tools.nsc.doc.html.Doclet.generateImpl(Doclet.scala:30)
        at scala.tools.nsc.doc.doclet.Generator.generate(Generator.scala:35)
        at scala.tools.nsc.doc.DocFactory.generate$1(DocFactory.scala:139)
        at scala.tools.nsc.doc.DocFactory.document(DocFactory.scala:142)
        at scala.tools.nsc.ScalaDoc.process(ScalaDoc.scala:48)
        at scala.tools.nsc.ScalaDoc$.main(ScalaDoc.scala:99)
        at scala.tools.nsc.ScalaDoc.main(ScalaDoc.scala)


Ошибка воспроизводится как с java 11 так и java 17