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

Reply via email to