Maven'i kullandığımdan beri, Javadoc etiketleri eksik olan yerel depo projelerimi (örneğin, eksik bir parametre) oluşturup kurabildim.
Ancak, Java 8'e (1.8.0-ea-b90) geçiş yaptığım için Maven, eksik belge etiketleri konusunda kesinlikle katı ve Javadoc'un olmadığı bir proje oluşturmaya veya yüklemeye çalıştığımda Javadoc sorunları ile ilgili birçok Javadoc hatası göster "mükemmel". Yerel veri havuzumda derlemeye ve kurmaya çalıştığım bazı projeler, kontrol sahibi olmadığım üçüncü taraf projeler. Bu yüzden, tüm bu projelerde tüm Javadoc'ları düzeltmenin çözümü benim senaryomda mümkün görünmüyor.
Bu, projemde yürüttüğümde gördüğüm çıktının küçük bir kısmı mvn clean package install
:
[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] ^
Javadoc Maven eklentisi POM'umda şu şekilde yapılandırıldı:
<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>
Daha önce de söylediğim gibi, Java 7'ye geri dönersem her şey yolunda gidiyordur. Belki bu Maven'in Java 8'de çalışmasıyla ilgili bir hata mıdır? Java 8 ile nasıl çalıştırabilirim (yani, projenin Javadoc'unu oluşturabilir ve kodunu yerel depomda kurabilirim)? OSX'te Maven 3.0.3 ve 3.0.5 ile test yaptım.
GÜNCELLEME:
Javadoc eklenti yapılandırmamı <failOnError>false</failOnError>
(teşekkürler Martin) ile değiştirirsem:
<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>
Sonra proje yerel depoma yüklenir. Ancak, Javadoc JAR hala oluşturulmaz.
Bu yeni yapılandırmayla birlikte konsolda gördüğüm çıktının bir parçası:
[ERROR] MavenReportException: Arşiv oluşturulurken hata: Çıkış kodu: 1 - /Users/....java:18: warning: no @param ... Komut satırı şuydu: / Library / Java / Home / bin / javadoc @options @packages
'/ Users / sergioc / Documents / workspace / heal / minitoolbox / target / apidocs' dizinindeki oluşturulan Javadoc dosyalarına bakın.
at org.apache.maven.plugin.javadoc.AbstractJavadocMojo.executeJavadocCommandLine (Soyut org.apache.maven.joec.exec.exec.exec.exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Exec.Execex. : 209) org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:153) org.apache şirketinde org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:153). maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:84) org.apache.maven.lifecycle.internal.LifecycleModuleBuilder'da.org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild (LifecycleStarter.java:183) konumundaki org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild (LifecycleStarter.java:183) 'da (LifecycleStarter.java:183) (LifecycleStarter.jec:1) org.apache.maven.e.MavenCli.execute (MavenCli.java şirketinde org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:320) : 537) sun.reflect.NativeMethodAccessorImpl.invoke0 şirketinde org.apache.maven.cli.MavenCli.doMain (MavenCli.java:196) 'da (MavenCli.java:141) Native Method) sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57) 'de sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java.43.fl.hoavalang43.java.43 adresinde).org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:290) org.codehaus.plexus.classworlds.launcher.Launcher.launch'da (Launcher.java:230) çağırın (Method.java:491) org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode'da (Launcher.java:409) org.codehaus.plexus.classworlds.launcher.Launcher.main'de (Launcher.java:352)
Kaynakların nasıl oluşturulacağı, projenin nasıl kurulacağı ve Java 7 ile çalışırken bir adımda Javadoc JAR'ın nasıl oluşturulacağı hakkında herhangi bir geçici çözüm var mı?