As a point of reference, on my i7 dual core HT enabled, it actually was better with -T 2. The time was just under 3 minutes. With -T 3, the time was just over 3 minutes.
As I was going through this, I noticed there's a lot of inefficiencies in the build. There was a lot of jar files being copied all over the place. Will take a look at how to reduce that, especially for dev-test environment. The only problem is I'm not sure if changes to these copies would affect rpm building or not. --Alex > -----Original Message----- > From: Alex Huang [mailto:alex.hu...@citrix.com] > Sent: Wednesday, March 13, 2013 9:01 PM > To: cloudstack-dev@incubator.apache.org > Subject: RE: eclipse and maven working together... > > Oh and with the eclipse change, I was able to finally use multiple threads to > compile. Before, it always died because eclipse was interfering. Now I'm > able to get the entire compile down to just about 3 minutes. > > mvn -T 3 -o -P impatient,systemvm clean install -DskipTests=true > > --Alex > > > -----Original Message----- > > From: Alex Huang [mailto:alex.hu...@citrix.com] > > Sent: Wednesday, March 13, 2013 8:49 PM > > To: cloudstack-dev@incubator.apache.org > > Subject: RE: eclipse and maven working together... > > > > Oh and btw, I checked in a new profile called impatient. With it, I > > cut off a whole minute (about 25% for me) off the build. Use it in place of > developer. > > Developer profile is still there. > > > > mvn -o -P impatient,systemvm clean install -DskipTests=true > > > > --Alex > > > > > -----Original Message----- > > > From: Alex Huang [mailto:alex.hu...@citrix.com] > > > Sent: Wednesday, March 13, 2013 8:33 PM > > > To: cloudstack-dev@incubator.apache.org > > > Subject: eclipse and maven working together... > > > > > > With the included checkins, I made some changes to help developers > > > with better productivity. > > > > > > With maven not supporting incremental build, most people are > > > building with mvn clean install. After doing that, you probably see > > > eclipse start rebuilding the workspace and eclipse is slow when that > happens. > > > I thought that was strange and figured it was because maven and > > > eclipse are sharing the same target directories. A quick search on > > > that turns up that this is a common problem already described on > > > m2e's faq > > [1]. > > > > > > So with this commit, I did the following things. > > > > > > I changed the outputDirectory of the build to be based on a config > variable. > > > The default is the normal target directory. However with the > > > eclipse profile, it gets set to target-eclipse. What this means is > > > that > > > > > > - When compiling outside of eclipse, it uses target to contain the > > > generated files. > > > - When compiling inside eclipse, it depends on the active profile > > > for the project. If it contains eclipse, then it uses > > > target-eclipse. If it doesn't contain anything, then it uses target like > before. > > > > > > Here comes the hard part, in order to make this work, you need to > > > run a script that I checked in. Run it with bash. Works in Cygwin for > > > me. > > > > > > Quite eclipse. > > > > > > From the top directory, run > > > > > > tools/eclipse/set-eclipse-profile.sh > > > > > > This will set all of the projects to have profile eclipse. From > > > then on, your eclipse won't be recompiling the workspace every time > > > you run mvn clean install in a terminal. It also avoids a race > > > condition between mvn and eclipse in building the class files. > > > > > > --Alex > > > > > > [1] > > > > > > http://wiki.eclipse.org/M2E_FAQ#Maven_Integration_for_Eclipse_vs._Mav > > > en_eclipse:eclipse_plugin > > > > > > -----Original Message----- > > > From: ahu...@apache.org [mailto:ahu...@apache.org] > > > Sent: Wednesday, March 13, 2013 8:22 PM > > > To: cloudstack-comm...@incubator.apache.org > > > Subject: [2/2] git commit: refs/heads/master - Added a shell script > > > to set the maven profiles in eclipse > > > > > > Updated Branches: > > > refs/heads/master 1079d63b6 -> 164d3a1a3 > > > > > > > > > Added a shell script to set the maven profiles in eclipse > > > > > > > > > Project: > > > http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo > > > Commit: http://git-wip-us.apache.org/repos/asf/incubator- > > > cloudstack/commit/164d3a1a > > > Tree: http://git-wip-us.apache.org/repos/asf/incubator- > > > cloudstack/tree/164d3a1a > > > Diff: http://git-wip-us.apache.org/repos/asf/incubator- > > > cloudstack/diff/164d3a1a > > > > > > Branch: refs/heads/master > > > Commit: 164d3a1a39f3d0b9f52a1254dd7a53ee37d957c4 > > > Parents: 0115133 > > > Author: Alex Huang <alex.hu...@citrix.com> > > > Authored: Wed Mar 13 20:20:10 2013 -0700 > > > Committer: Alex Huang <alex.hu...@citrix.com> > > > Committed: Wed Mar 13 20:21:58 2013 -0700 > > > > > > ---------------------------------------------------------------------- > > > tools/eclipse/set-eclipse-profile.sh | 26 > > ++++++++++++++++++++++++++ > > > 1 files changed, 26 insertions(+), 0 deletions(-) > > > -------------------------------------------------------------------- > > > -- > > > > > > > > > http://git-wip-us.apache.org/repos/asf/incubator- > > > cloudstack/blob/164d3a1a/tools/eclipse/set-eclipse-profile.sh > > > -------------------------------------------------------------------- > > > -- diff --git a/tools/eclipse/set-eclipse-profile.sh > > > b/tools/eclipse/set-eclipse- profile.sh new file mode 100644 index > > > 0000000..1abc662 > > > --- /dev/null > > > +++ b/tools/eclipse/set-eclipse-profile.sh > > > @@ -0,0 +1,26 @@ > > > +#!/bin/bash > > > +# Licensed to the Apache Software Foundation (ASF) under one # or > > > +more contributor license agreements. See the NOTICE file # > > > +distributed with this work for additional information # regarding > > > +copyright ownership. The ASF licenses this file # to you under the > > > +Apache License, Version 2.0 (the # "License"); you may not use this > > > +file except in compliance # with the License. You may obtain a > > > +copy of the License at # > > > +# http://www.apache.org/licenses/LICENSE-2.0 > > > +# > > > +# Unless required by applicable law or agreed to in writing, # > > > +software distributed under the License is distributed on an # "AS IS" > > > +BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either > > express > > > +or implied. See the License for the # specific language governing > > > +permissions and limitations # under the License. > > > + > > > +for file in `find . -name org.eclipse.m2e.core.prefs | xargs`; do > > > + if grep -q activeProfiles=eclipse $file; then > > > + echo Skipping $file; > > > + else > > > + echo Replacing $file; > > > + sed -i s/activeProfiles=/activeProfiles=eclipse/g $file; > > > + fi; > > > +done > > > \ No newline at end of file