2013-10-04 4 views
7

Podczas próby wdrożenia projektu java-webservices mam problemy z niektórymi wtyczkami, mój projekt nie został pobrany "maven-javadoc-plugin : 2.4" wtyczki, ręcznie zainstalowałem słoik wersji "maven-javadoc-plugin 2.5" do mojego .m2/repozytorium. DostajęWystąpił błąd podczas generowania raportu JavaDocs: Kod zakończenia: 1 - javadoc: błąd - nieprawidłowa flaga: -author

"An error has occurred in JavaDocs report generation:Exit code: 1 - 
javadoc: error - invalid flag: -author". 

Czy ktoś może mi pomóc z tym błędem,

dziecko pom

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-javadoc-plugin</artifactId> 
    <executions> 
     <execution> 
      <goals> 
       <goal>javadoc</goal> 
      </goals> 
      <phase>compile</phase> 
     </execution> 
    </executions> 
    <configuration> 
     <encoding>UTF-8</encoding> 
     <verbose>false</verbose> 
     <show>public</show> 
     <subpackages>com.pubco.mp.emarket.services</subpackages> 
     <doclet>com.sun.jersey.wadl.resourcedoc.ResourceDoclet</doclet> 
     <docletArtifacts> 
      <docletArtifact> 
       <groupId>com.sun.jersey.contribs</groupId> 
       <artifactId>wadl-resourcedoc-doclet</artifactId> 
       <version>${jersey-client.version}</version> 
      </docletArtifact> 
      <docletArtifact> 
       <groupId>com.sun.jersey</groupId> 
       <artifactId>jersey-server</artifactId> 
       <version>${jersey-client.version}</version> 
      </docletArtifact> 
      <docletArtifact> 
       <groupId>xerces</groupId> 
       <artifactId>xercesImpl</artifactId> 
       <version>2.6.1</version> 
      </docletArtifact> 
     </docletArtifacts> 
     <additionalparam>-output ${project.build.outputDirectory}/resourcedoc.xml</additionalparam> 
    </configuration> 
</plugin> 

nadrzędna pom:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-javadoc-plugin</artifactId> 
    <executions> 
     <execution> 
      <goals> 
       <goal>javadoc</goal> 
      </goals> 
      <phase>compile</phase> 
     </execution> 
    </executions> 
    <configuration> 
     <encoding>UTF-8</encoding> 
     <verbose>false</verbose> 
     <show>public</show> 
     <subpackages>com.pubco.mp.emarket.services</subpackages> 
     <doclet>com.sun.jersey.wadl.resourcedoc.ResourceDoclet</doclet> 
     <docletArtifacts> 
      <docletArtifact> 
       <groupId>com.sun.jersey.contribs</groupId> 
       <artifactId>wadl-resourcedoc-doclet</artifactId> 
       <version>${jersey-client.version}</version> 
      </docletArtifact> 
      <docletArtifact> 
       <groupId>com.sun.jersey</groupId> 
       <artifactId>jersey-server</artifactId> 
       <version>${jersey-client.version}</version> 
      </docletArtifact> 
      <docletArtifact> 
       <groupId>xerces</groupId> 
       <artifactId>xercesImpl</artifactId> 
       <version>2.6.1</version> 
      </docletArtifact> 
     </docletArtifacts> 
     <additionalparam>-output ${project.build.outputDirectory}/resourcedoc.xml</additionalparam> 
    </configuration> 
</plugin> 

Super POM : ma numer wersji i nie jestem pewien, w jaki sposób ten pom jest pobierany.

<maven-javadoc-plugin.version>2.5</maven-javadoc-plugin.version> 

<pluginExecution> 
    <pluginExecutionFilter> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-javadoc-plugin</artifactId> 
     <versionRange>[2.5,)</versionRange> 
     <goals> 
      <goal>javadoc</goal> 
     </goals> 
    </pluginExecutionFilter> 
    <action> 
     <execute/> 
    </action> 
</pluginExecution> 

pełne wyjście błędu:

1 error 
[INFO] 
------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] 
------------------------------------------------------------------------ 
[INFO] Total time: 23.959s 
[INFO] Finished at: Fri Oct 04 18:31:07 IST 2013 
[INFO] Final Memory: 16M/29M 
[INFO] 
------------------------------------------------------------------------ 
[ERROR] Failed to execute goal 
org.apache.maven.plugins:maven-javadoc-plugin:2.5:javadoc (default) on 
project mpemarketservices-war: An error has occurred in JavaDocs 
report generation:Exit code: 1 - javadoc: error - invalid flag: -author 
[ERROR] 
[ERROR] Command line was:C:\jdk1.6.0_13\jre\..\bin\javadoc.exe @options 
[ERROR] -> [Help 1] 
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 
[ERROR] Re-run Maven using the -X switch to enable full debug logging. 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles: 

[ERROR] [Help 1] 
http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException 
+0

po prostu dodać pom informacje, czy mógłbyś rzucić okiem –

+0

rzeczywiście, jeśli pomyśleć o tym, dlaczego używasz 2.5? To materiał z epoki kamienia. Obecna wersja to 2.9.1 - czy możesz spróbować jej użyć i sprawdzić, czy błąd nie zniknął? – Mureinik

+0

prawda, prawda. Ale to moja decyzja menedżera budowy. nawet próbowałem z 2.9.1 w moim lokalnie, to nie pomaga. –

Odpowiedz

5

miałem ten sam problem dzisiaj i naprawić go, dodając opcję konfiguracji do wtyczki Javadoc:

<useStandardDocletOptions>false</useStandardDocletOptions> 

Tak otrzymany config wygląda tak:

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-javadoc-plugin</artifactId> 
      <executions> 
       <execution> 
        <goals> 
         <goal>javadoc</goal> 
        </goals> 
        <phase>compile</phase> 
       </execution> 
      </executions> 
      <configuration> 
       <encoding>UTF-8</encoding> 
       <verbose>false</verbose> 
       <show>public</show> 
       <subpackages>com.pubco.mp.emarket.services</subpackages> 
       <doclet>com.sun.jersey.wadl.resourcedoc.ResourceDoclet</doclet> 
       <docletArtifacts> 
        <docletArtifact> 
         <groupId>com.sun.jersey.contribs</groupId> 
         <artifactId>wadl-resourcedoc-doclet</artifactId> 
         <version>${jersey-client.version}</version> 
        </docletArtifact> 
        <docletArtifact> 
         <groupId>com.sun.jersey</groupId> 
         <artifactId>jersey-server</artifactId> 
         <version>${jersey-client.version}</version> 
        </docletArtifact> 
        <docletArtifact> 
         <groupId>xerces</groupId> 
         <artifactId>xercesImpl</artifactId> 
         <version>2.6.1</version> 
        </docletArtifact> 
       </docletArtifacts> 
       <additionalparam>-output ${project.build.outputDirectory}/resourcedoc.xml</additionalparam> 
       <useStandardDocletOptions>false</useStandardDocletOptions> 
      </configuration> 
     </plugin> 
0

Jeśli piszesz dokument i chcesz, aby mógł on pracować z opcjami standardowymi, możesz użyć numeru optionLength, aby je przekazać.

Dokumentacja UmlGraphDoc pokazuje, jak przekazać standardowe opcje do standardowego docletu, a następnie zarezerwować te, które mają być dostępne dla twojego dokumentu.

import com.sun.tools.doclets.standard.Standard; 

... 

/** 
* Option check, forwards options to the standard doclet, if that one 
* refuses them, they are sent to UmlGraph 
*/ 
public static int optionLength(String option) { 
    int result = Standard.optionLength(option); 
    if (result != 0) 
     return result; 
    else 
     return UmlGraph.optionLength(option); 
}