cbeust / kobalt

A Kotlin-based build system for the JVM.
Apache License 2.0
432 stars 60 forks source link

Implemented javadoc options #438

Closed ethauvin closed 7 years ago

ethauvin commented 7 years ago

There's an issue with the way Kobalt launches the javadoc executable when using the -link option.

It is used to create links to existing javadoc-generated documentation of external referenced classes.

You can run the main routine of the JavadocConfig class, and see that everything works like it should that way.

To produce the error add the following to your build file:

    javadoc {
        quiet = false
        verbose = true
        links("http://docs.oracle.com/javase/8/docs/api/")
    }
./kobaltw clean doc --log 2

You'll get the following:

Constructing Javadoc information...
java.lang.IllegalArgumentException: protocol = http host = null
        at sun.net.spi.DefaultProxySelector.select(DefaultProxySelector.java:176)
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1132)
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1032)
        at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:966)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1546)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1474)
        at java.net.URL.openStream(URL.java:1045)
        at com.sun.tools.doclets.internal.toolkit.util.Extern.readPackageListFromURL(Extern.java:236)
        at com.sun.tools.doclets.internal.toolkit.util.Extern.link(Extern.java:180)
        at com.sun.tools.doclets.internal.toolkit.Configuration.setOptions(Configuration.java:528)
        at com.sun.tools.doclets.internal.toolkit.Configuration.setOptions(Configuration.java:554)
        at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.startGeneration(AbstractDoclet.java:134)
        at com.sun.tools.doclets.internal.toolkit.AbstractDoclet.start(AbstractDoclet.java:82)
        at com.sun.tools.doclets.formats.html.HtmlDoclet.start(HtmlDoclet.java:80)
        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:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:310)
        at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:189)
        at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:366)
        at com.sun.tools.javadoc.Start.begin(Start.java:219)
        at com.sun.tools.javadoc.Start.begin(Start.java:205)
        at com.sun.tools.javadoc.Main.execute(Main.java:64)
        at com.sun.tools.javadoc.Main.main(Main.java:54)

As far as I can tell, it has to do with some kind of proxy configuration issue.

ethauvin commented 7 years ago
Compilation errors, command:
C:\Program Files\Java\jdk1.8.0_131\bin\javadoc.exe -d .\kobaltBuild\docs\javadoc -classpath C:\Users\erik\.kobalt\cache\com\github\spullara\mustache\java\compiler\0.9.4\compiler-0.9.4.jar -Xdoclint:none -Xmaxerrs 1 -windowtitle "Semantic Version Annotation Processor 0.9.7" -doctitle "Semantic Version Annotation Processor 0.9.7" -tag "created" -author -link "http://docs.oracle.com/javase/8/docs/api/" .\src\main\java\net\thauvin\erik\semver\Constants.java .\src\main\java\net\thauvin\erik\semver\Version.java .\src\main\java\net\thauvin\erik\semver\VersionInfo.java .\src\main\java\net\thauvin\erik\semver\VersionProcessor.java .\src\main\java\net\thauvin\erik\semver\Constants.java .\src\main\java\net\thauvin\erik\semver\Version.java .\src\main\java\net\thauvin\erik\semver\VersionInfo.java .\src\main\java\net\thauvin\erik\semver\VersionProcessor.java

If you run it manually, it works.