I am wanting to update the G3 dev wiki to help first-time builders get started.
How would you suggest a build of G3 could become faster?

The only tip I am aware of for speeding up trunk (G3) builds is to install a
maven repository proxy like nexus. This is eluded to in the wiki already.
Are there any other tips?


I have been able to successfully build G3 from trunk several times now but with
differing build time results.

The best build time I have had is 13 hours.
The worst build time I have had is 39 hours. (this is from my latest build)

I am using a very basic build procedure.
1. checkout G3 trunk
2. JAVA_HOME="/path/to/jdk/1.6.0_22"
3. download and install a fresh maven 2.2.1
4. MAVEN_OPTS="-Xmx968m -XX:MaxPermSize=500m -XX:ReservedCodeCacheSize=64m"
5. mvn clean install
6. 13 to 39 hours later == BUILD SUCCESS


>From observing the build process, it would seem the most used (seemingly 
>paused)
time is right before the build process moves on to the next plugin or assembly.

This "seemingly paused time" after the assembly I assume is the packaging
process, because the resulting output is a huge collection.

[INFO] Geronimo Assemblies ............................... SUCCESS [3.995s]
[INFO] Geronimo Assemblies :: Minimal + Jetty8 ........... SUCCESS [8:15.210s]
[INFO] Geronimo Assemblies :: Java EE 6 Web Profile + Jetty8  SUCCESS 
[1:57:17.311s]
[INFO] Geronimo Assemblies :: Java EE 6 + Jetty8 ......... SUCCESS 
[1:02:47.374s]
[INFO] Geronimo Assemblies :: Minimal + Tomcat7 .......... SUCCESS [8:08.838s]
[INFO] Geronimo Assemblies :: Java EE 6 Web Profile + Tomcat7  SUCCESS
[1:59:16.619s]
[INFO] Geronimo Assemblies :: Java EE 6 + Tomcat7 ........ SUCCESS 
[1:08:13.854s]

That is ~1.5 hours for the "Java EE 6 Web Profile + Jetty8" and "Java EE 6 Web
Profile + Tomcat7" assemblies.


For the plugins, I would assume the same, except that I notice that, of course,
the latest snapshot dependencies are being downloaded, and the poms in the maven
SNAPSHOT repositories are continually being accessed.

I realize that because trunk (G3) largely depends on 3rd-party artifact
SNAPSHOTS that these repositories are checked during every build, and new
SNAPSHOT libraries are always being downloaded (as is the nature of snapshot
releases).


As it is not a simple process for a user to setup a maven repo proxy, and could
be a deterrent to someone getting started if it were necessary to install a
proxy, I am looking at other methods and tips that might increase the speed of
building G3.

Is this feasible? Or would we just say, that because of the nature of SNAPSHOT
builds and their dependencies on 3rd-party SNAPSHOT artifacts, there is no real
means to improving build speed unless a proxy is utilized?
If the later is true, I would like to add this note in the wiki's build
documentation. And also warn those who choose to build without a proxy may
experience a long build time.


Discussion?
-RG


Reply via email to