I am running JavaDoc (version 1.8, on Windows 8.1) with some custom taglets, using this command:
C:\applications\programming\java\jdk1.8.0_25\bin\javadoc.exe -J-Dcodelet_con
fig_dir="C:/data_jeffy/code/java/codelet_test_proj2/codelet_config/" @javado
c_saved.options
where javadoc_saved.options contains
-classpath 'C:/data_jeffy/code/java/codelet_test_proj2/jar_dependencies/xbnjava-0.1.5.1.jar;C:/data_jeffy/code/java/codelet_test_proj2/jar_dependencies/testng-6.8.21.jar;C:/data_jeffy/code/java/codelet_test_proj2/jar_dependencies/templatefeather-0.1.1.3.jar;C:/data_jeffy/code/java/codelet_test_proj2/jar_dependencies/mockito-core-1.9.5.jar;C:/data_jeffy/code/java/codelet_test_proj2/jar_dependencies/guava-16.0.1.jar;C:/data_jeffy/code/java/codelet_test_proj2/jar_dependencies/commons-lang3-3.3.2.jar;C:/data_jeffy/code/java/codelet_test_proj2/jar_dependencies/commons-io-2.4.jar;C:/data_jeffy/code/java/codelet_test_proj2/jar_dependencies/commons-collections4-4.0.jar;C:/data_jeffy/code/java/codelet_test_proj2/jar_dependencies/codelet-0.1.5.jar;C:/data_jeffy/code/java/codelet_test_proj2/jar_dependencies/assertj-core-1.0.0.jar;C:/data_jeffy/code/java/codelet_test_proj2/jar_dependencies/apache-ant-1.9.4.jar'
-d 'C:/data_jeffy/code/java/codelet_test_proj2/build/docs/javadoc'
-taglet 'com.github.aliteralmind.codelet.taglet.Codelet8Taglet'
-taglet 'com.github.aliteralmind.codelet.taglet.ConsoleDotOut8Taglet'
-taglet 'com.github.aliteralmind.codelet.taglet.FileText8Taglet'
-taglet 'com.github.aliteralmind.codelet.taglet.SourceAndOut8Taglet'
-tagletpath 'C:/data_jeffy/code/java/codelet_test_proj2/jar_dependencies/xbnjava-0.1.5.1.jar;C:/data_jeffy/code/java/codelet_test_proj2/jar_dependencies/testng-6.8.21.jar;C:/data_jeffy/code/java/codelet_test_proj2/jar_dependencies/templatefeather-0.1.1.3.jar;C:/data_jeffy/code/java/codelet_test_proj2/jar_dependencies/mockito-core-1.9.5.jar;C:/data_jeffy/code/java/codelet_test_proj2/jar_dependencies/guava-16.0.1.jar;C:/data_jeffy/code/java/codelet_test_proj2/jar_dependencies/commons-lang3-3.3.2.jar;C:/data_jeffy/code/java/codelet_test_proj2/jar_dependencies/commons-io-2.4.jar;C:/data_jeffy/code/java/codelet_test_proj2/jar_dependencies/commons-collections4-4.0.jar;C:/data_jeffy/code/java/codelet_test_proj2/jar_dependencies/codelet-0.1.5.jar;C:/data_jeffy/code/java/codelet_test_proj2/jar_dependencies/assertj-core-1.0.0.jar;C:/data_jeffy/code/java/codelet_test_proj2/jar_dependencies/apache-ant-1.9.4.jar'
-windowtitle 'codelet_test_proj2 0.4.0-SNAPSHOT API'
'C:/data_jeffy/code/java/codelet_test_proj2/src/mypkg/Temp.java'
(classpath and tagletpath are equal.)
Output:
Loading source file C:\data_jeffy\code\java\codelet_test_proj2\src\mypkg\Temp.java...
Constructing Javadoc information...
Registered Taglet com.github.aliteralmind.codelet.taglet.Codelet8Taglet ...
javadoc: error - Error - Exception java.lang.ClassNotFoundException thrown while trying to register
Taglet com.github.aliteralmind.codelet.taglet.ConsoleDotOut8Taglet...
javadoc: error - Error - Exception java.lang.ClassNotFoundException thrown while trying to register
Taglet com.github.aliteralmind.codelet.taglet.FileText8Taglet...
javadoc: error - Error - Exception java.lang.ClassNotFoundException thrown while trying to register
Taglet com.github.aliteralmind.codelet.taglet.SourceAndOut8Taglet...
Standard Doclet version 1.8.0_25
Building tree for all the packages and classes...
Generating C:\data_jeffy\code\java\codelet_test_proj2\build\docs\javadoc\mypkg\Temp.html...
Loading Codelet configuration
Loading base config
Loading debug level config file...
1
2
3
4
5
6
7
8
9
10
11
12
14
15
16
17
javadoc: error - com.sun.tools.doclets.internal.toolkit.util.DocletAbortException: java.lang.Runtim
eException: Attempting to process taglet: C:\data_jeffy\code\java\codelet_test_proj2\src\mypkg\Temp
.java(7): {@codelet.src mypkg.Temp}
4 errors
Notice the section with
Loading Codelet configuration
Loading base config
Loading debug level config file...
That's inside the custom taglet (I wrote it). So for some reason, the taglets are causing a ClassNotFoundException, and then being successfully loaded...and then failing with DocletAbortException . This answer suggests it might be because the CLASSPATH environment variable is set, but I do not have CLASSPATH in my environment. There's not much information I can find about it.
The taglets are compiled in 1.7, but I think they should work with JavaDoc 1.8.
Heres the output when calling it with version 1.7
[C:\data_jeffy\code\java\codelet_test_proj2]C:\applications\programming\java\jdk_1p7p0_72\bin\javad
oc.exe -J-Dcodelet_config_dir="C:/data_jeffy/code/java/codelet_test_proj2/codelet_config/" @javadoc
_saved.options
Loading source file C:/data_jeffy/code/java/codelet_test_proj2/src/mypkg/Temp.java...
Constructing Javadoc information...
Registered Taglet com.github.aliteralmind.codelet.taglet.Codelet8Taglet ...
javadoc: error - Error - Exception java.lang.ClassNotFoundException thrown while trying to register
Taglet com.github.aliteralmind.codelet.taglet.ConsoleDotOut8Taglet...
javadoc: error - Error - Exception java.lang.ClassNotFoundException thrown while trying to register
Taglet com.github.aliteralmind.codelet.taglet.FileText8Taglet...
javadoc: error - Error - Exception java.lang.ClassNotFoundException thrown while trying to register
Taglet com.github.aliteralmind.codelet.taglet.SourceAndOut8Taglet...
Standard Doclet version 1.7.0_72
Building tree for all the packages and classes...
Generating C:\data_jeffy\code\java\codelet_test_proj2\build\docs\javadoc\mypkg\Temp.html...
Loading Codelet configuration
Loading base config
Loading debug level config file...
1
2
3
4
5
6
7
8
9
10
11
12
14
15
16
17
java.lang.RuntimeException: Attempting to process taglet: C:\data_jeffy\code\java\codelet_test_proj
2\src\mypkg\Temp.java(7): {@codelet.src mypkg.Temp}
at com.github.aliteralmind.codelet.TagletProcessor.<init>(Unknown Source)
at com.github.aliteralmind.codelet.taglet.CodletComSunJavadocTagProcessor.get(Unknown Source)
at com.github.aliteralmind.codelet.taglet.Codelet8Taglet.toString(Unknown Source)
at com.sun.tools.doclets.internal.toolkit.taglets.LegacyTaglet.getTagletOutput(LegacyTaglet.java:120)
at com.sun.tools.doclets.internal.toolkit.taglets.TagletWriter.getInlineTagOuput(TagletWriter.java:220)
at com.sun.tools.doclets.formats.html.HtmlDocletWriter.commentTagsToString(HtmlDocletWriter.java:2401)
at com.sun.tools.doclets.formats.html.HtmlDocletWriter.addCommentTags(HtmlDocletWriter.java:2361)
at com.sun.tools.doclets.formats.html.HtmlDocletWriter.addInlineComment(HtmlDocletWriter.java:2322)
at com.sun.tools.doclets.formats.html.ClassWriterImpl.addClassDescription(ClassWriterImpl.java:285)
at com.sun.tools.doclets.internal.toolkit.builders.ClassBuilder.buildClassDescription(ClassBuilder.java:312)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.sun.tools.doclets.internal.toolkit.builders.AbstractBuilder.invokeMethod(AbstractBuilder.java:148)
at com.sun.tools.doclets.internal.toolkit.builders.AbstractBuilder.build(AbstractBuilder.java:103)
at com.sun.tools.doclets.internal.toolkit.builders.AbstractBuilder.buildChildren(AbstractBuilder.java:129)
at com.sun.tools.doclets.internal.toolkit.builders.ClassBuilder.buildClassInfo(ClassBuilder.java:171)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.sun.tools.doclets.internal.toolkit.builders.AbstractBuilder.invokeMethod(AbstractBuilder.java:148)
at com.sun.tools.doclets.internal.toolkit.builders.AbstractBuilder.build(AbstractBuilder.java:103)
at com.sun.tools.doclets.internal.toolkit.builders.AbstractBuilder.buildChildren(AbstractBuilder.java:129)
at com.sun.tools.doclets.internal.toolkit.builders.ClassBuilder.buildClassDoc(ClassBuilder.java:145)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.sun.tools.doclets.internal.toolkit.builders.AbstractBuilder.invokeMethod(AbstractBuilder.java:148)
at com.sun.tools.doclets.internal.toolkit.builders.AbstractBuilder.build(AbstractBuilder.java:103)
at com.sun.tools.doclets.internal.toolkit.builders.ClassBuilder.build(ClassBuilder.java:117)
at com.sun.tools.doclets.formats.html.HtmlDoclet.generateClassFiles(HtmlDoclet.java:186)
at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.generateClassFiles(AbstractDoclet.java:196)
at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.generateClassFiles(AbstractDoclet.java:180)
at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.startGeneration(AbstractDoclet.java:125)
at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.start(AbstractDoclet.java:83)
at com.sun.tools.doclets.formats.html.HtmlDoclet.start(HtmlDoclet.java:63)
at com.sun.tools.doclets.standard.Standard.start(Standard.java:39)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:280)
at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:160)
at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:397)
at com.sun.tools.javadoc.Start.begin(Start.java:167)
at com.sun.tools.javadoc.Main.execute(Main.java:59)
at com.sun.tools.javadoc.Main.main(Main.java:49)
Caused by: com.github.xbn.io.RTIOException: TagletTextUtil.getJavaSourceFilePath(instance)=C:\data_jeffy\code\java\throwing-lambdas\src\test\java\mypkg\Temp.java
at com.github.xbn.io.PlainTextFileUtil.getLineIterator(Unknown Source)
at com.github.xbn.io.PlainTextFileUtil.getLineIterator(Unknown Source)
at com.github.aliteralmind.codelet.TagletOfTypeProcessor.getSourceCodeLineIterator(UnknownSource)
at com.github.aliteralmind.codelet.type8.SourceCode8Processor.<init>(Unknown Source)
... 50 more
Caused by: java.io.FileNotFoundException: File 'C:\data_jeffy\code\java\throwing-lambdas\src\test\java\mypkg\Temp.java' does not exist
at org.apache.commons.io.FileUtils.openInputStream(FileUtils.java:299)
at org.apache.commons.io.FileUtils.lineIterator(FileUtils.java:1856)
at org.apache.commons.io.FileUtils.lineIterator(FileUtils.java:1877)
... 54 more
Generating C:\data_jeffy\code\java\codelet_test_proj2\build\docs\javadoc\mypkg\package-frame.html...
Generating C:\data_jeffy\code\java\codelet_test_proj2\build\docs\javadoc\mypkg\package-summary.html...
Generating C:\data_jeffy\code\java\codelet_test_proj2\build\docs\javadoc\mypkg\package-tree.html...
Generating C:\data_jeffy\code\java\codelet_test_proj2\build\docs\javadoc\constant-values.html...
Building index for all the packages and classes...
Generating C:\data_jeffy\code\java\codelet_test_proj2\build\docs\javadoc\overview-tree.html...
Generating C:\data_jeffy\code\java\codelet_test_proj2\build\docs\javadoc\index-all.html...
Generating C:\data_jeffy\code\java\codelet_test_proj2\build\docs\javadoc\deprecated-list.html...
Building index for all classes...
Generating C:\data_jeffy\code\java\codelet_test_proj2\build\docs\javadoc\allclasses-frame.html...
Generating C:\data_jeffy\code\java\codelet_test_proj2\build\docs\javadoc\allclasses-noframe.html...
Generating C:\data_jeffy\code\java\codelet_test_proj2\build\docs\javadoc\index.html...
Generating C:\data_jeffy\code\java\codelet_test_proj2\build\docs\javadoc\help-doc.html...
3 errors
Again, the taglets all fail with a ClassNotFoundException, and then are successfully loaded. But this time they fail with an error that I understand--it's an error thrown by the taglet itself (TagletTextUtil.getJavaSourceFilePath), saying it can't find a file (C:\data_jeffy\code\java\throwing-lambdas\...), which is a purposefully-invalid path, for the sake of this test.
So it fails one way with JavaDoc 1.8, and another way with 1.7. The 1.7 version is working after they all fail with ClassNotFoundExceptions. 1.8 JavaDoc fails with ClassNotFoundExceptions and then DocletAbortExceptions.
What is going on? I need to get this working with JavaDoc 1.8.
Aucun commentaire:
Enregistrer un commentaire