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