J'ai un projet Maven avec maven-javadoc-plugin et JDK8. Quand je cours mvn javadoc:test-javadoc
alors le plugin signale la documentation-les erreurs et les arrêts, mais quand je cours mvn javadoc:test-javadoc-no-fork
le plugin fonctionne avec succès et il y a juste quelques avertissements. La question est pas comment résoudre ou les erreurs de documentation. Le plugin a détecté de vrais problèmes de documentation, qui doivent être corrigés, donc les erreurs rapportées de mvn javadoc:test-javadoc
sont le résultat correct.Qu'est-ce qui fait que maven-javadoc-plugin goal test-javadoc échoue en cas d'erreur mais test-javadoc-no-fork juste pour avoir des avertissements
La question est: Pourquoi ne pas mvn javadoc:test-javadoc-no-fork
échouer mais gérer les problèmes tout comme avertissement?
Contexte:
- le projet est un multi-module-projet
- Version Maven: 3.3.9
- maven-javadoc-plugin: 2.9.4 (le même comportement se produit pour 3.0.0-M1)
- Java8
Le problème arborait dans TracingServiceSpringTest
a vraiment une documentation manquante pour la jetée DatatypeConfigurationException
/** scenario: some text... **/
@Test
public void testImport() throws DatatypeConfigurationException {...
Sortie lors de l'exécution mvn javadoc:test-javadoc
[INFO]
[INFO] <<< maven-javadoc-plugin:2.10.4:test-javadoc (default-cli) < generate-test-sources @ agrovet-server <<<
[INFO]
[INFO] --- maven-javadoc-plugin:2.10.4:test-javadoc (default-cli) @ agrovet-server ---
[INFO]
...
3 errors
9 warnings
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] PROJECT ............................................ SUCCESS [ 1.131 s]
[INFO] PROJECT :: Client .................................. SUCCESS [ 43.908 s]
[INFO] PROJECT :: Server .................................. FAILURE [ 44.774 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:36 min
[INFO] Finished at: 2017-09-23T21:33:33+02:00
[INFO] Final Memory: 96M/1573M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.10.4:test-javadoc (default-cli) on project PROJECT-server: An error has occurred in Test JavaDocs report generation:
[ERROR] Exit code: 1 - F:\workspaces\PROJECT\PROJECT-server\src\test\java\com\example\PROJECT\infrastructure\TracingServiceSpringTest.java:389: warning:
no @throws for javax.xml.datatype.DatatypeConfigurationException
[ERROR] public void testImport() throws DatatypeConfigurationException {
[ERROR]^
...
[ERROR]
[ERROR] Command line was: "C:\Program Files\Java\jdk1.8.0_121\jre\..\bin\javadoc.exe" @options @packages
[ERROR]
[ERROR] Refer to the generated Javadoc files in 'F:\workspaces\PROJECT\PROJECT-server\target\site\testapidocs' dir.
[ERROR] -> [Help 1]
[ERROR]
...
Sortie lors de l'exécution mvn javadoc:test-javadoc-no-fork
8 warnings
[WARNING] Javadoc Warnings
[WARNING] F:\workspaces\PROJECT\PROJECT-server\src\test\java\com\example\PROJECT\infrastructure\TracingServiceSpringTest:389: warning: no @throws for javax.xml.datatype.DatatypeConfigurationException
[WARNING] public void testImport() throws DatatypeConfigurationException {
[WARNING]^
...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] PROJECT ............................................ SUCCESS [ 0.454 s]
[INFO] PROJECT :: Client .................................. SUCCESS [ 0.011 s]
[INFO] PROJECT :: Server .................................. SUCCESS [ 6.763 [INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
...
Parties pertinentes POM, parent pom.xml
(la pom complète est tout simplement trop énorme, mais cela est la seule partie qui mentionne le maven-javadoc-plugin
:
<dependencyManagement>
<dependencies>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.4</version>
</plugin>
</dependencies>
</dependencyManagement>
...
<reporting>
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<reportSets>
<reportSet>
<reports>
<!--
javadoc-no-fork in order to prevent JavaDoc process from runing generate-source again
but this also requries that JavaDoc generation runs after compile: "mvn install site"
but not on a black project "mvn clean site"
-->
<report>javadoc-no-fork</report>
<report>test-javadoc-no-fork</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
Mais ces problèmes ne sont pas des problèmes de compilateur. Les problèmes sont simplement que le javadoc pour une exception levée est manquant. - Et l'outil javadoc est même lors de l'exécution de 'test-javadoc-no-fork' reconnaissant ce problème (il génère un avertissement) mais n'arrête pas la construction. – Ralph
@Ralph Ya probablement je me suis trompé initialement. Essayer de reproduire le même avec une classe chacun dans mon test et principal, je ne pouvais pas obtenir l'échec pour les deux commandes cependant. Vous pouvez également essayer d'inclure 'test-javadoc' dans l'un des rapports et voir si cela peut vous aider. – nullpointer