Vì tôi sử dụng Maven, tôi đã có thể xây dựng và cài đặt trong các dự án kho lưu trữ cục bộ có các thẻ Javadoc chưa hoàn chỉnh (ví dụ: một tham số bị thiếu).
Tuy nhiên, vì tôi đã di chuyển sang Java 8 (1.8.0-ea-b90), Maven hoàn toàn nghiêm ngặt về việc thiếu các thẻ tài liệu và cho tôi thấy rất nhiều lỗi Javadoc liên quan đến các vấn đề Javadoc khi tôi cố gắng xây dựng hoặc cài đặt một dự án mà Javadoc không "hoàn hảo". Một số dự án tôi đang cố gắng biên dịch và cài đặt trong kho lưu trữ cục bộ của tôi là các dự án của bên thứ ba mà tôi không có quyền kiểm soát. Vì vậy, cách giải quyết của việc sửa tất cả các Javadocs trong tất cả các dự án này dường như không khả thi trong kịch bản của tôi.
Đây là một phần nhỏ của đầu ra mà tôi thấy khi tôi thực hiện mvn clean package install
trong dự án của mình:
[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 được cấu hình như thế này trong POM của tôi:
<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>
Như tôi đã nói trước đây, mọi thứ đều hoạt động tốt nếu tôi quay lại Java 7. Có lẽ đây là một lỗi liên quan đến Maven đang chạy trong Java 8? Làm cách nào tôi có thể làm cho nó hoạt động (nghĩa là có thể xây dựng Javadoc của dự án và cài đặt mã của nó trong kho lưu trữ cục bộ của tôi) với Java 8? Tôi đã thử nghiệm với cả Maven 3.0.3 và 3.0.5 trong OSX.
CẬP NHẬT:
Nếu tôi thay đổi cấu hình plugin Javadoc bằng <failOnError>false</failOnError>
(cảm ơn 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>
Sau đó, dự án được cài đặt trong kho lưu trữ cục bộ của tôi. Tuy nhiên, JAR Javadoc vẫn chưa được tạo.
Một phần của đầu ra mà tôi thấy trong bảng điều khiển có cấu hình mới này là:
[ERROR] MavenReportException: Lỗi khi tạo tệp lưu trữ: Mã thoát: 1 - /Users/....java:18: cảnh báo: no @param ... Dòng lệnh là: / Library / Java / Home / bin / javadoc @options @ gói
Tham khảo các tệp Javadoc được tạo trong thư mục '/ Users / sergioc / Documents / workspaces / heal / minitoolbox / target / apidocs'.
tại org.apache.maven.plugin.javadoc.AbaugeJavadocMojo.executeJavadocCommandLine (Tóm tắtJavadocMojo.java:5043) tại org.apache.maven.plugin.javadoc. .javadoc.JavadocJar.execute (JavadocJar.java:181) tại org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java: 110. : 209) tại org.apache.maven.lifecycle.iternal.MojoExecutor.execute (MojoExecutor.java:153) tại org.apache.maven.lifecycle.i INTERNal.MojoExecutor.execute (MojoExecutor.java. maven.lifecycle.iternal.LifecyclModuleBuilder.buildProject (LifecyclModuleBuilder.java:84) tại org.apache.maven.lifecycle.i INTERNal.LifecyclModuleBuilder.buildProject (LifecyclModuleBuilder.java:59) tại org.apache.maven.lifecycl.i INTERNal.LifecyclStarter.singleThreadedBuild (LifecyclStarter.java:183) tại org.apache.maven.lifecycl.i INTERNal tại org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:320) tại org.apache.maven.DefaultMaven.execute (DefaultMaven.java:156) tại org.apache.maven.cli.MavenCli.execute (MavenCli.execute : 537) tại org.apache.maven.cli.MavenCli.doMain (MavenCli.java:196) tại org.apache.maven.cli.MavenCli.main (MavenCli.java:141) tại sun.reflect.NativeMethodAcoror Phương thức gốc) tại sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57) tại sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:gọi (Phương thức.java: 491) tại org.codehaus.plexus. classworlds.launcher.Launcher.launchEnhified (Launcher.java:290) tại org.codehaus.plexus. classworlds.launcher.Launcher.launch (Launcher.java tại org.codehaus.plexus. classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:409) tại org.codehaus.plexus. classworlds.launcher.Launcher.main (Launcher.java:352)
Bất kỳ cách giải quyết nào về cách xây dựng các nguồn, cài đặt dự án và tạo JAR Javadoc trong một bước khi nó hoạt động với Java 7?