У меня простой проект с SRC / основной / Java / тест / Test.java
package test;
/**
* Class java doc
*/
public class Test
{
/**
* Wrong java doc
*
* @param test
* @return
*/
public int aMethod(int param){
return 0;
}
}
и pom.xml
<?xml version = "1.0" encoding = "UTF-8" standalone = "yes"?>
<project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.test</groupId>
<artifactId>test</artifactId>
<version>1.0.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
При сборке в Linux с помощью oracle-jdk8 (161) происходит сбой из-за неправильной документации javadoc.
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:3.0.0:jar (attach-javadocs) on project test: MavenReportException: Error while generating Javadoc:
[ERROR] Exit code: 1 - /home/D070061/SAPDevelop/test/src/main/java/test/Test.java:10: error: @param name not found
[ERROR] * @param test
Если сделать то же самое с open-jdk8 (v171), сборка будет успешной
Я переключаю java с sudo update-alternatives --config java
Кто-нибудь знает, почему он не работает на OpenJDK? Это ошибка или нужны особые параметры?
Да, я знаю, что документация неверна. Переформулирую вопрос. Почему не работает OpenJDK?
Что произойдет, если вы будете использовать те же номера версий? Оба на v161 или оба на v171?
Поскольку сейчас существует 161 openJdk, я пробовал его с 162 с тем же результатом




Вы пробовали отключить DocLint в конфигурации Maven? Вы можете легко сделать это, добавив -Xdoclint: none к глобальным свойствам в вашем pom.xml:
<?xml version = "1.0" encoding = "UTF-8" standalone = "yes"?>
<project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.test</groupId>
<artifactId>test</artifactId>
<version>1.0.0-SNAPSHOT</version>
<properties>
<additionalparam>-Xdoclint:none</additionalparam>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Моя цель не в том, чтобы деактивировать doclint для генерации JavaDoc, а в том, чтобы найти способ генерировать синтаксически правильный JavaDoc. Генерация должна завершиться неудачей, если doc linter обнаружит какую-то проблему. В моем примере openjdk вообще не использует doclint. Вопрос в том, почему
Похоже, что Debian исправляет javadoc, чтобы отключить doclint по умолчанию, как и предположительно некоторые производные и другие дистрибутивы.
Плагин Maven Javadoc добавил элемент конфигурации <doclint> в 3.0.0, поэтому для этой версии и более поздних вы должны иметь возможность повторно включить doclint, указав, например:
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<doclint>all</doclint>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
Документация неверна, это должно быть @param param мое описание параметра.