ตั้งแต่ฉันใช้ Maven ฉันสามารถสร้างและติดตั้งในโครงการที่เก็บในเครื่องของฉันที่มีแท็ก Javadoc ที่ไม่สมบูรณ์ (ตัวอย่างเช่นพารามิเตอร์ขาดหายไป)
อย่างไรก็ตามเนื่องจากฉันย้ายไปยัง Java 8 (1.8.0-ea-b90) Maven นั้นเข้มงวดมากเกี่ยวกับแท็กเอกสารที่หายไปและแสดงข้อผิดพลาด Javadoc จำนวนมากที่เกี่ยวข้องกับปัญหา Javadoc เมื่อฉันพยายามสร้างหรือติดตั้งโครงการที่ Javadoc ไม่ได้ "สมบูรณ์แบบ" บางโครงการที่ฉันพยายามรวบรวมและติดตั้งในพื้นที่เก็บข้อมูลในพื้นที่ของฉันคือโครงการของ บริษัท อื่นซึ่งฉันไม่สามารถควบคุมได้ ดังนั้นการแก้ปัญหาเพียงแก้ไข Javadocs ทั้งหมดในโครงการเหล่านี้ทั้งหมดจึงดูเหมือนจะไม่เป็นไปได้ในสถานการณ์ของฉัน
นี่เป็นส่วนเล็ก ๆ ของผลลัพธ์ที่ฉันเห็นเมื่อฉันดำเนินการ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 ได้รับการกำหนดค่าเช่นนี้ใน POM ของฉัน:
<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>
อย่างที่ฉันพูดไปก่อนหน้านี้ทุกอย่างทำงานได้ดีถ้าฉันกลับไปที่ Java 7 อาจเป็นข้อผิดพลาดที่เกี่ยวข้องกับ Maven ที่ทำงานใน Java 8 หรือไม่? ฉันจะทำให้มันทำงานได้อย่างไร (เช่นสามารถสร้าง Javadoc ของโครงการและติดตั้งรหัสในที่เก็บในเครื่องของฉัน) ด้วย Java 8 ฉันได้ทดสอบกับ Maven 3.0.3 และ 3.0.5 ใน OSX แล้ว
UPDATE:
หากฉันเปลี่ยนการกำหนดค่าปลั๊กอิน Javadoc ด้วย<failOnError>false</failOnError>
(ขอบคุณ 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>
จากนั้นโครงการจะถูกติดตั้งในที่เก็บในเครื่องของฉัน อย่างไรก็ตาม Javadoc JAR ยังไม่ถูกสร้างขึ้น
ส่วนของผลลัพธ์ที่ฉันเห็นในคอนโซลด้วยการกำหนดค่าใหม่นี้คือ:
[ข้อผิดพลาด] MavenReportException: เกิดข้อผิดพลาดขณะสร้างที่เก็บถาวร: รหัสออก: 1 - /Users/....java:18: คำเตือน: ไม่มี @param ... บรรทัดคำสั่งคือ: / Library / Java / Home / bin / javadoc @options @packages
อ้างถึงไฟล์ Javadoc ที่สร้างใน '/ Users / sergioc / Documents / workspaces / heal / minitoolbox / target / apidocs'
at org.apache.maven.plugin.javadoc.AbstractJavadocMojo.executeJavadocCommandLine (AbstractJavadocMojo.java:5043) ที่ org.apache.maven.plugin.javadoc.AbstractJavadocMojo .javadoc.JavadocJar.execute (JavadocJar.java:181) ที่ org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:101) ที่ org.apache.maven.lifecycle.international.execute : 209) ที่ org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:153) ที่ org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:145) ที่ org.apache maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:84) ที่ org.apache.maven.lifecycle.internal.LifecycleModuleBuilderbuildProject (LifecycleModuleBuilder.java:59) ที่ org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild (LifecycleStarter.java:183) ที่ org.apache.maven.lifecycle.internal.LifecycleStarter.exifecycle ที่ org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:320) ที่ org.apache.maven.DefaultMaven.execute (DefaultMaven.java:156) ที่ org.apache.maven.cli.MavenCli.execute (MavenCli.java : 537) ที่ org.apache.maven.cli.MavenCli.doMain (MavenCli.java:196) ที่ org.apache.maven.cli.MavenCli.main (MavenCli.java:141) ที่ sun.reflect.NativeMethodAccessorImpl.invoke0 ( วิธีการเนทีฟ) ที่ sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57) ที่ sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) ที่ java.lang.reflectMethodวิงวอน (Method.java:491) ที่ org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:290) ที่ org.codehaus.plexus.classworlds.launcher.launch (Launcher.java:230) ที่ org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:409) ที่ org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:352)
วิธีแก้ปัญหาใด ๆ เกี่ยวกับวิธีสร้างแหล่งที่มาติดตั้งโครงการและสร้าง Javadoc JAR ในขั้นตอนเดียวเหมือนกับที่ใช้กับ Java 7