incubator-cloudstack-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rajesh Battala <rajesh.batt...@citrix.com>
Subject RE: eclipse and maven working together...
Date Thu, 14 Mar 2013 04:02:23 GMT
Thanks a lot Alex 

> -----Original Message-----
> From: Alex Huang [mailto:Alex.Huang@citrix.com]
> Sent: Thursday, March 14, 2013 9:19 AM
> 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.Huang@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: ahuang@apache.org [mailto:ahuang@apache.org]
> > Sent: Wednesday, March 13, 2013 8:22 PM
> > To: cloudstack-commits@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.huang@citrix.com>
> > Authored: Wed Mar 13 20:20:10 2013 -0700
> > Committer: Alex Huang <alex.huang@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


Mime
View raw message