सारांश:
मैं एक दिलचस्प समस्या हुई है, और मैं काफी यकीन है कि यह कैसे के लिए खोजी कुत्ता नहीं कर रहा हूँ:का उपयोग ग्रहण जावाडोक दुर्घटना में javac परिणाम के बजाय संकलक
- हमारी परियोजना किया गया है महीने के लिए इमारत ठीक
- मैं
maven-compiler-plugin
बदल गया जब मैंmvn site
चलाने अबjavac
- के बजाय
eclipse
संकलक उपयोग करने के लिए,maven-javadoc-plugin
विफल रहता है - स्टैक ट्रेस के अनुसार, ऐसा लगता है जावाडोक उपकरण ग्रहण संकलक
द्वारा बनाई गई एक वर्ग फ़ाइल पर क्रैश हो रहा है तो इसे ठीक करने कोई तरीका है? यदि नहीं, तो क्या इसे कम से कम डीबग करने का कोई तरीका है?
पूर्ण विवरण:
मैं जावा 1.6.0_27 और Maven 3.0.2 का उपयोग कर रहा हूँ।
मैं अपने कोडबेस बनाने के लिए जावैक कंपाइलर का उपयोग कर रहा हूं, लेकिन मुझे एक्लिप्स कंपाइलर को आजमाने में दिलचस्पी है, क्योंकि यह बहुत बेहतर चेतावनियां उत्पन्न करता है (और अन्य तरीकों से अधिक विन्यास योग्य है)।
तो मैं करने के लिए pom.xml में maven-compiler-plugin
की परिभाषा ही बदल:
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<compilerId>eclipse</compilerId>
<source>1.6</source>
<target>1.6</target>
<compilerArgument>-warn:+boxing,enumSwitch,javadoc,hashCode</compilerArgument>
<showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-eclipse</artifactId>
<version>1.8.2</version>
</dependency>
</dependencies>
</plugin>
मेरी <reporting>
अनुभाग में, मेरे पास है:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.8</version>
</plugin>
अब तक तो अच्छा। मैंने mvn clean install
किया और सब कुछ ठीक बनाता है, सभी परीक्षण पास होते हैं, और सबकुछ बढ़िया दिखता है।
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3.0:site (default-site) on project framework: Error during page generation: Error rendering Maven report:
[ERROR] Exit code: 1 - java.lang.StringIndexOutOfBoundsException: String index out of range: -15
[ERROR] at java.lang.String.substring(String.java:1937)
[ERROR] at java.lang.String.substring(String.java:1904)
[ERROR] at com.sun.tools.javac.jvm.ClassReader.simpleBinaryName(ClassReader.java:958)
[ERROR] at com.sun.tools.javac.jvm.ClassReader.readEnclosingMethodAttr(ClassReader.java:930)
[ERROR] at com.sun.tools.javac.jvm.ClassReader.readMemberAttr(ClassReader.java:909)
[ERROR] at com.sun.tools.javac.jvm.ClassReader.readClassAttr(ClassReader.java:1053)
[ERROR] at com.sun.tools.javac.jvm.ClassReader.readClassAttrs(ClassReader.java:1067)
[ERROR] at com.sun.tools.javac.jvm.ClassReader.readClass(ClassReader.java:1560)
[ERROR] at com.sun.tools.javac.jvm.ClassReader.readClassFile(ClassReader.java:1658)
[ERROR] at com.sun.tools.javac.jvm.ClassReader.fillIn(ClassReader.java:1845)
[ERROR] at com.sun.tools.javac.jvm.ClassReader.complete(ClassReader.java:1777)
[ERROR] at com.sun.tools.javac.code.Symbol.complete(Symbol.java:386)
[ERROR] at com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:763)
[ERROR] at com.sun.tools.javac.code.Symbol$ClassSymbol.flags(Symbol.java:695)
[ERROR] at com.sun.tools.javadoc.ClassDocImpl.getFlags(ClassDocImpl.java:105)
[ERROR] at com.sun.tools.javadoc.ClassDocImpl.isAnnotationType(ClassDocImpl.java:116)
[ERROR] at com.sun.tools.javadoc.DocEnv.isAnnotationType(DocEnv.java:574)
[ERROR] at com.sun.tools.javadoc.DocEnv.getClassDoc(DocEnv.java:546)
[ERROR] at com.sun.tools.javadoc.PackageDocImpl.getClasses(PackageDocImpl.java:154)
[ERROR] at com.sun.tools.javadoc.PackageDocImpl.addAllClassesTo(PackageDocImpl.java:170)
[ERROR] at com.sun.tools.javadoc.RootDocImpl.classes(RootDocImpl.java:178)
[ERROR] at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.startGeneration(AbstractDoclet.java:96)
[ERROR] at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.start(AbstractDoclet.java:64)
[ERROR] at com.sun.tools.doclets.formats.html.HtmlDoclet.start(HtmlDoclet.java:42)
[ERROR] at com.sun.tools.doclets.standard.Standard.start(Standard.java:23)
[ERROR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[ERROR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[ERROR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[ERROR] at java.lang.reflect.Method.invoke(Method.java:597)
[ERROR] at com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:269)
[ERROR] at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:143)
[ERROR] at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:340)
[ERROR] at com.sun.tools.javadoc.Start.begin(Start.java:128)
[ERROR] at com.sun.tools.javadoc.Main.execute(Main.java:41)
[ERROR] at com.sun.tools.javadoc.Main.main(Main.java:31)
[ERROR]
[ERROR] Command line was: "C:\Program Files (x86)\Java\jdk1.6.0_27\jre\..\bin\javadoc.exe" @options @packages
[ERROR]
[ERROR] Refer to the generated Javadoc files in 'C:\Projects\SMF\framework\target\site\apidocs' dir.
[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
मेरे प्रश्न::
ठीक है, तो क्या बदल
लेकिन जब मैं mvn site
को चलाने के लिए, जब यह जावाडोक रिपोर्ट के हो जाता है की कोशिश, यह क्या एक जावाडोक दुर्घटना प्रतीत होता है के साथ विफल ? जब मैं जावैक का उपयोग कर रहा था तब सभी जावाडोक और मेवेन साइट ठीक ठीक से निर्माण कर रहे थे, लेकिन जैसे ही मैंने ग्रहण कंपाइलर पर स्विच किया, जावाडोक दुर्घटनाग्रस्त हो गया।
इससे भी बदतर, यह मुझे यह भी नहीं बताता कि किस वर्ग ने इसे दुर्घटनाग्रस्त कर दिया है, इसलिए मुझे यह भी नहीं पता कि यह कहां से डिबग करना शुरू करें।
जाहिर है, इस समय के लिए इसका मतलब है कि मैं ग्रहण कंपाइलर का उपयोग नहीं कर रहा हूं, और मैं इसके बजाय जावैक के साथ चिपकने जा रहा हूं। लेकिन मैं के लिए उत्सुक हूं क्यों यह हो रहा है, और मैं इसे ठीक करने या उसके आसपास काम करने के लिए संभवतः क्या कर सकता हूं।
यह अजीब है। हो सकता है कि यह एक "डिफ़ॉल्ट" मुद्दा --- क्या आप स्पष्ट तर्कों के साथ जावैक चला सकते हैं? – jayunit100
@ jayunit100: मैं वास्तव में जावैक का आह्वान नहीं कर रहा हूं। ऐसा लगता है जैसे जावाडोक उपकरण आंतरिक रूप से जावैक (भागों) का उपयोग कर रहा है, लेकिन जहां तक मुझे पता है कि मेरे पास इसका कोई नियंत्रण नहीं है। (यदि आप किसी भी तरह से जानते हैं, तो हर तरह से, कृपया इसे उत्तर के रूप में पोस्ट करें!) –
mvnDebug का उपयोग करने के बारे में यह जानने के लिए कि यह किस स्ट्रिंग पर चल रहा है? यह कुछ सुराग दे सकता है। –