Karena saya menggunakan Maven, saya dapat membangun dan menginstal di proyek repositori lokal saya yang memiliki tag Javadoc tidak lengkap (misalnya, parameter yang hilang).
Namun, karena saya bermigrasi ke Java 8 (1.8.0-ea-b90) Maven benar-benar ketat tentang kehilangan tag dokumentasi dan menunjukkan kepada saya banyak kesalahan Javadoc terkait dengan masalah Javadoc ketika saya mencoba membangun atau menginstal proyek di mana Javadoc tidak "sempurna". Beberapa proyek yang saya coba kompilasi dan instal di repositori lokal saya adalah proyek pihak ketiga yang tidak saya kendalikan. Jadi solusi untuk memperbaiki semua Javadocs di semua proyek ini tampaknya tidak cocok dalam skenario saya.
Ini adalah sebagian kecil dari output yang saya lihat ketika saya jalankan mvn clean package install
di proyek saya:
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9.026s
[INFO] Finished at: Mon Apr 08 21:06:17 CEST 2013
[INFO] Final Memory: 27M/437M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.9:jar (attach-javadocs) on project jpc: MavenReportException: Error while creating archive:
[ERROR] Exit code: 1 - /Users/sergioc/Documents/workspaces/heal/jpc/src/main/java/org/jpc/engine/prolog/PrologDatabase.java:10: error: @param name not found
[ERROR] * @param terms the terms to assert
[ERROR] ^
[ERROR] /Users/sergioc/Documents/workspaces/heal/jpc/src/main/java/org/jpc/engine/prolog/PrologDatabase.java:11: warning: no description for @return
[ERROR] * @return
[ERROR] ^
Plugin Javadoc Maven dikonfigurasi seperti ini di POM saya:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
Seperti yang saya katakan sebelumnya, semuanya bekerja dengan baik jika saya kembali ke Jawa 7. Mungkin ini bug yang terkait dengan Maven yang berjalan di Java 8? Bagaimana saya bisa membuatnya bekerja (yaitu, bisa membangun Javadoc proyek dan menginstal kode di repositori lokal saya) dengan Java 8? Saya telah menguji dengan Maven 3.0.3 dan 3.0.5 di OSX.
MEMPERBARUI:
Jika saya mengubah konfigurasi plugin Javadoc saya dengan <failOnError>false</failOnError>
(terima kasih Martin):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
Kemudian proyek diinstal di repositori lokal saya. Namun, JAR Javadoc masih belum dihasilkan.
Sebuah fragmen dari output yang saya lihat di konsol dengan konfigurasi baru ini adalah:
[GALAT] MavenReportException: Kesalahan saat membuat arsip: Keluar kode: 1 - /Users/....java:18: peringatan: no @param ... Baris perintah adalah: / Library / Java / Home / bin / javadoc @options @ paket
Lihat file Javadoc yang dihasilkan di '/ Users / sergioc / Documents / workspaces / heal / minitoolbox / target / apidocs' dir.
di org.apache.maven.plugin.javadoc.AbstractJavadocMojo.executeJavadocCommandLine (AbstractJavadocMojo.java:5043) di org.apache.maven.plugin.javadoc.AbstrakJavadocMojo.executeReport (AbstractJavad0990ga.mugum .javadoc.JavadocJar.execute (JavadocJar.java:181) di org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:101) di org.apache.maven.lifecycle. : 209) di org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:153) di org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:145) di org.apache. maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:84) di org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:59) di org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild (LifecycleStarter.java:183) di org.apache.maven.lifecycle.internal.LifecycleStarter.execute (Lifecycle) di org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:320) di org.apache.maven.DefaultMaven.execute (DefaultMaven.java:156) di org.apache.maven.cli.MavenCli.execute (MavenCli.java : 537) di org.apache.maven.cli.MavenCli.doMain (MavenCli.java:196) di org.apache.maven.cli.MavenCli.main (MavenCli.java:141) di sun.reflect.NativeMethodAccessorImpl.invoke0 ( Metode Asli) di sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57) di sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43 di folder java.lebih.panggil (Method.java:491) di org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java .:90) di org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java .:30) di org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:409) di org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:352)
Adakah solusi tentang cara membangun sumber, menginstal proyek, dan menghasilkan JAR Javadoc dalam satu langkah karena bekerja dengan Java 7?