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