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._Maven_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