How should one distribute the Javadoc for a Library?
I am writing a custom library. It's build into a .jar archive. I am fully able to generate the javadoc, but I don't know how I should distribute it?
- Put it in the same .jar with开发者_StackOverflow中文版 the library
- Put it in a different .jar
- Some other way?
And how to include the javadoc in another project that uses my lib?
- If I had put it in the same .jar, should I have written something in the manifest?
- If it's in a separate .jar, is including it in the project enough?
I am using NetBeans 9.1.
I'd include the library .jar and the documentation and other things, like a README, License file etc. in a single archive (zip or tar.gz)
mylib-1.0.1.tar.gz , which contains:
mylib-1.0.1/
├── javadoc
│ └── index.html (and all other javadoc files under here)
├── mylib-1.0.1.jar
└── README
Instead of the expanded javadoc/ sub directory within the archive, you could add the compressed javadoc in a mylib-1.0.1-javadoc.jar (or zip) , both options are common.
mylib-1.0.1/
├── mylib-1.0.1-javadoc.jar
├── mylib-1.0.1.jar
└── README
It's a general practice to keep the JavaDocs in a separate archive. or even more commonly, in a directory called 'docs'. you do not needlessly want to bloat your library's archive with the html and js files.
And why would you want to include the generated JavaDocs [html + js] in your project? As long the source code JavaDoc comments are in place, someone using your library will be able to see them by simply hovering over w/ the mouse in any of the modern IDE's
Update
As per nanda's comment below, I checked the same and he IS correct. In my project, I have actually attached Javadocs from the 'doc' folder to the archive to be able to view them on mouseover.
Another way: For me this was the best choise: (addingto build.xml. I've tested it on NetBeans IDE 7.0 and 7.2.1) (found it on Automatically generating source and doc jars in Netbeans )
<target name="-post-jar" description="bundle sources and javadoc in a jar" depends="javadoc">
<jar compress="${jar.compress}" basedir="${src.dir}" jarfile="${dist.dir}/${application.title}-sources.jar"/>
<jar compress="${jar.compress}" basedir="${test.src.dir}" jarfile="${dist.dir}/${application.title}-test.jar"/>
<jar compress="${jar.compress}" basedir="${dist.javadoc.dir}" jarfile="${dist.dir}/${application.title}-javadoc.jar"/>
This will create four jars, one to application program, one to sources, one to tests and one to javadoc.
精彩评论