You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flume.apache.org by "Andrew Bayer (JIRA)" <ji...@apache.org> on 2013/09/24 01:00:04 UTC

[jira] [Updated] (FLUME-2199) Flume builds with new version require mvn install before site can be generated

     [ https://issues.apache.org/jira/browse/FLUME-2199?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andrew Bayer updated FLUME-2199:
--------------------------------

    Attachment: FLUME-2199.patch

This patch creates a separate flume-parent/pom.xml, renames the top-level POM to "flume-project", gets rid of the dependencyManagement section for the flume artifacts from the parent in favor of specifying the version as project.version whenever they're used (which makes a bunch of things smoother), sets up proper relative paths for parent POMs everywhere, only runs the site plugin for the top-level POM, and only does the dependency aggregation for javadoc in the top-level POM.

Net result is a drop in "mvn clean source:jar javadoc:javadoc install -DskipTests -Psite" from 7m52s to 2m48s.
                
> Flume builds with new version require mvn install before site can be generated
> ------------------------------------------------------------------------------
>
>                 Key: FLUME-2199
>                 URL: https://issues.apache.org/jira/browse/FLUME-2199
>             Project: Flume
>          Issue Type: Bug
>          Components: Build
>    Affects Versions: v1.4.0
>            Reporter: Andrew Bayer
>             Fix For: v1.5.0
>
>         Attachments: FLUME-2199.patch
>
>
> At this point, if you change the version for Flume, you need to run a mvn install before you can run with -Psite (or, for that matter, javadoc:javadoc) enabled. This is because the top-level POM in flume.git/pom.xml is both the parent POM and the root of the reactor - since it's the parent, it's got to run before any of the children that inherit from it, but site generation should be running *after* all the children, so that it probably pulls in the reactor's build of each child module, rather than having to pull in one already installed/deployed before the build starts.
> There are a bunch of other reasons to split parent POM and top-level POM, but that's the biggest one right there. 
> Also, the javadoc jar generation is a bit messed up - every module's javadoc jar contains not only its own javadocs but the javadocs for every Flume module it depends on. That, again, may make sense in a site context for the top-level, but not for the individual modules. This results in unnecessary bloat in the javadoc jars, and unnecessary time spent downloading the "*-javadoc-resources.jar" for every dependency each module has, due to how the javadoc plugin works. Also the whole site generation per-module thing, which I am not a fan of in most cases. I don't think it's needed here. Tweaking the site plugin not to run anywhere but the top-level and the javadoc plugin to not do the dependency aggregation anywhere but the top-level should make a big difference on build speed.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira