exclude the client (go) project based on whether a property is set
diff --git a/README.md b/README.md
index 90d13f0..a0ad219 100644
--- a/README.md
+++ b/README.md
@@ -23,7 +23,7 @@
     git submodule init
     git submodule update --remote --merge --recursive
     
-And then:
+And then, with jdk 1.8+, maven 3.1+, and go 1.6+ installed (or skip go with `-Dno-go-client`):
 
     mvn clean install
 
diff --git a/pom.xml b/pom.xml
index b782dee..d9713e7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -76,8 +76,34 @@
         <module>brooklyn-ui</module>
         <module>brooklyn-server</module>
         <module>brooklyn-library</module>
-        <module>brooklyn-client</module>
-        <module>brooklyn-dist</module>
     </modules>
 
+    <profiles>
+        <profile>
+            <!-- skip the client CLI by setting -Dno-go-client - useful if Go is not available -->
+            <id>go-client</id>
+            <activation>
+                <property>
+                    <name>!no-go-client</name>
+                </property>
+            </activation>
+            <modules>
+                <module>brooklyn-client</module>
+            </modules>
+        </profile>
+        <profile>
+            <!-- also build the dist with a profile; we don't really expect people to opt in to skip, though they can;
+                 mainly this is here to ensure the go-client profile modules if included get built before the dist module -->
+            <id>dist</id>
+            <activation>
+                <property>
+                    <name>!no-dist</name>
+                </property>
+            </activation>
+            <modules>
+                <module>brooklyn-dist</module>
+            </modules>
+        </profile>
+    </profiles>
+
 </project>