Maven을 사용하기 때문에 Javadoc 태그가 불완전한 로컬 리포지토리 프로젝트 (예 : 누락 된 매개 변수)에서 빌드하고 설치할 수있었습니다.
그러나 Java 8 (1.8.0-ea-b90)으로 마이그레이션했기 때문에 Maven은 문서 태그 누락에 대해 절대적으로 엄격하며 Javadoc이 아닌 프로젝트를 빌드하거나 설치하려고 할 때 Javadoc 문제와 관련된 많은 Javadoc 오류를 보여줍니다 "완전한". 로컬 리포지토리에서 컴파일 및 설치하려는 일부 프로젝트는 내가 제어 할 수없는 타사 프로젝트입니다. 따라서이 모든 프로젝트에서 모든 Javadoc을 수정하는 해결 방법은 시나리오에서 실현 가능하지 않은 것 같습니다.
이것은 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로 돌아 가면 모든 것이 제대로 작동합니다. Java 8에서 실행되는 Maven과 관련된 버그입니까? Java 8에서 어떻게 작동합니까 (예 : 프로젝트의 Javadoc을 빌드하고 로컬 리포지토리에 코드를 설치할 수 있음)? OSX에서 Maven 3.0.3 및 3.0.5로 테스트했습니다.
최신 정보:
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 : 경고 : no @param ... 명령 행 : / Library / Java / Home / bin / javadoc @options @ 패키지
'/ Users / sergioc / Documents / workspaces / heal / minitoolbox / target / apidocs'디렉토리에서 생성 된 Javadoc 파일을 참조하십시오.
org.apache.maven.plugin의 org.apache.maven.plugin.javadoc.AbstractJavadocMojo.executeReport (AbstractJavadocMojo.java:1990)의 org.apache.maven.plugin의 org.apache.maven.plugin.javadoc.AbstractJavadocMojo.executeJavadocCommandLine (AbstractJavadocMojo.java:5043)에서 org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:101)의 org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java의 .javadoc.JavadocJar.execute (JavadocJar.java:181) : 209) org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:153), org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:145) org.apache에 있습니다. org.apache.maven.lifecycle.internal.LifecycleModuleBuilder에서 maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:84).org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild (LifecycleStarter.java:183) org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:161)의 buildProject (LifecycleModuleBuilder.java:59) org.apache.maven.cli.MavenCli.execute (MavenCli.java의 org.apache.maven.DefaultMaven.execute (DefaultMaven.java:156)에서 org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:320)에서 : 537) org.apache.maven.cli.MavenCli.doMain (MavenCli.java:196) at org.apache.maven.cli.MavenCli.main (MavenCli.java:141) at sun.reflect.NativeMethodAccessorImpl.invoke0 ( 기본 메소드) sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:290) org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:230)에서 invoke (Method.java:491) org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:409)에서 org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:352)에서
소스를 빌드하고, 프로젝트를 설치하고, Java 7과 함께 작업 할 때 한 단계로 Javadoc JAR을 생성하는 방법에 대한 해결 방법이 있습니까?