Christopher,
   Thanks for the info.
   I am going with the approach of generating my javadocs as part of the
mvn site.  This works great.  Now the next problem:

   Under my top level project I have a project called "docs".  It is a
collection of asciidoc source files that I use the asciidoc plugin to turn
into html files, and then i use the assembly plugin to put them in a zip.
This all happens during the "install" lifecycle.  This is the "in-app" html
documentation that is bundled with my application.  I am trying to get this
generated html also included in my site, but don't see a good way to do
that right now.

I noticed I can put a dependency from maven-site-plugin to
asciidoctor-maven-plugin, and then copy the source .adoc files to
src/site/asciidoc then they get picked up, and html is generated.  This is
cool EXCEPT it means that I have to have my source asciidoc files in two
places, one for the install phase generation, and one for the site phase
generation.

I suppose I could always keep the files in src/site/asciidocc, and point
the "install phase" ascii-doctor plugin to

Any ideas here?

Dan



On Fri, Mar 20, 2015 at 3:15 PM Christopher <ctubb...@apache.org> wrote:

> On Fri, Mar 20, 2015 at 2:51 PM, dan bress <danbr...@gmail.com> wrote:
> > Christopher,
> >    Thanks for the info.
> >    was your "docs" submodule, where the assembly lived?  How would you
> > bundle the javadocs created by the parent?
> >
>
> At the time we were doing this, the docs module was where we generated
> a PDF from LaTeX source. A sibling module did the final tarball
> assembly, which grabbed the PDF documentation generated in the docs
> module, and the javadocs which were generated in the parent but stored
> in the docs module's directory (by overriding outputDirectory in the
> parent task to point to docs/apidocs instead of the default
> target/apidocs; note: this is a terrible idea; generated stuff should
> always go in target).
>
> To be clear, I would not advise this method. I just know it's do-able
> with multiple lifecycle arguments on the maven command-line.
>
> >    What I am trying to do is capture all the build related
> > documentation(javadoc, asciidoc, and some other build generated
> > documentation artifacts) and put that in a directory structure so that I
> > can put it on our website.  This is why I am aggregating all the javadoc
> in
> > one place.  I'm open to other ideas if you have them.
> >
>
> There's a couple of ideas.
>
> 1. You could try using the site/reporting features to generate
> javadocs, rather than using aggregate goal.
> 2. You could create a separate project to build the assembly for the
> site, which depends on your main project.
>     2a) You could depend on your main project's source artifact,
> executes a task which builds the javadocs, and bundles them
>     2b) You could depend on your main project's individual modules'
> individual javadoc jars, and aggregate them manually in your site's
> assembly
> 3. You could manually execute a separate task to build the docs for
> the site, which does not depend on your main build.
>
> Keep in mind that your main Maven build should be for the purposes of
> reproducibly creating deployable artifacts. There are many plugins
> which can be executed independently from your main build, to perform
> useful tasks, but I would avoid conflating the two and trying to bake
> in these utility tasks into your main build, as you're just going to
> make it difficult to produce artifacts/releases. "mvn
> javadoc:aggregate" can always be executed as a separate task, and it
> *may* be more appropriate to do that separately, after you build and
> deploy your artifacts.
>
> > Dan
> >
> > On Fri, Mar 20, 2015 at 12:59 PM Christopher <ctubb...@apache.org>
> wrote:
> >
> >> On Fri, Mar 20, 2015 at 12:16 PM, dan bress <danbr...@gmail.com> wrote:
> >> > Maven,
> >> >    I have a multi module maven project and am trying to generate an
> >> > assembly that houses all our javadocs and our asciidoc generated docs.
> >> How
> >> > would you do this?
> >> >
> >> > Currently I have a directory structure that looks like this:
> >> >
> >> > root
> >> >   java-library-one
> >> >   java-library-two
> >> >   ascidoc-project
> >> >   pom.xml
> >> >
> >> > If I put a javadoc:aggregate plugin execution on the root pom it
> >> generates
> >> > the javadoc for both of my projects, which is what I want.  But I am
> not
> >> > sure where to put my assembly.  Should that be called from the root
> pom?
> >> > Should I make a sub project for the assembly?  If I do that, can it
> refer
> >> > to the javadoc generated by the parent?
> >> >
> >> > Let me know what you think!
> >> > Thanks!
> >>
> >> I've done something like this in the past. It's not pretty, but
> >> essentially, I had a sub-module for "docs", which, in its package
> >> phase, would bundle the javadocs created by the parent. To get this to
> >> work, I would have to run:
> >>
> >> mvn compile javadoc:aggregate package
> >>
> >> This would essentially force 3 lifecycles, the first to compile and
> >> the second to build the javadocs (which requires compilation first),
> >> and the third to package. Incidentally, the third lifecycle would end
> >> up compiling again, which was a bit of a waste, but it did work.
> >>
> >> In general, I'd avoid trying to bundle all the javadocs... partly
> >> because this is messy, and partly because I don't see a lot of value
> >> in a deployable artifact which bundles all the javadocs from many
> >> modules. Currently, my project only bundles individual javadoc jars to
> >> deploy to maven, and no longer builds an artifact with the aggregated
> >> javadocs. We still occasionally run javadoc:aggregate, though to
> >> generate docs to publish.
> >>
> >> --
> >> Christopher L Tubbs II
> >> http://gravatar.com/ctubbsii
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
> >> For additional commands, e-mail: users-h...@maven.apache.org
> >>
> >>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
> For additional commands, e-mail: users-h...@maven.apache.org
>
>

Reply via email to