You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bu...@apache.org on 2016/11/28 22:28:20 UTC

svn commit: r1001791 - in /websites/staging/sling/trunk/content: ./ documentation/development/getting-and-building-sling.html

Author: buildbot
Date: Mon Nov 28 22:28:20 2016
New Revision: 1001791

Log:
Staging update by buildbot for sling

Modified:
    websites/staging/sling/trunk/content/   (props changed)
    websites/staging/sling/trunk/content/documentation/development/getting-and-building-sling.html

Propchange: websites/staging/sling/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Mon Nov 28 22:28:20 2016
@@ -1 +1 @@
-1771803
+1771822

Modified: websites/staging/sling/trunk/content/documentation/development/getting-and-building-sling.html
==============================================================================
--- websites/staging/sling/trunk/content/documentation/development/getting-and-building-sling.html (original)
+++ websites/staging/sling/trunk/content/documentation/development/getting-and-building-sling.html Mon Nov 28 22:28:20 2016
@@ -118,23 +118,20 @@ h2:hover > .headerlink, h3:hover > .head
 <p>Note that you don't <em>have</em> to build Sling yourself, if you don't need the bleeding-edge stuff you can get prebuilt 
 binaries from the <a href="/downloads.cgi">Downloads</a> page. But those, especially the launchpad runnable jar, are not released often
 and can be outdated. In case of doubt, build it yourself as shown below or ask on the Sling users mailing list.</p>
-<p>A full build of Sling takes 5-10 minutes on a recent computer once your local Maven repository is up to date. The first build 
-may take much longer than that if you start with an empty local Maven repository, as Maven will then download its plugins and 
-all the required dependencies.</p>
+<p>Rather than performing a full build of Sling, which can take 5-10 minutes on a recent computer once your local Maven
+repository is up to date, it's recommended to build only the launchpad and the modules you're interested in.</p>
 <h2 id="tldr-short-form-build-run-instructions">tl:dr - Short form build + run instructions<a class="headerlink" href="#tldr-short-form-build-run-instructions" title="Permanent link">&para;</a></h2>
 <p>If you already have the required svn (or Git, see below) client, JDK and Maven installed, here's the short form recipe:</p>
-<div class="codehilite"><pre>$ <span class="n">svn</span> <span class="n">co</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">svn</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">repos</span><span class="o">/</span><span class="n">asf</span><span class="o">/</span><span class="n">sling</span><span class="o">/</span><span class="n">trunk</span> <span class="n">sling</span>
-$ <span class="n">cd</span> <span class="n">sling</span>
-$ <span class="n">export</span> <span class="n">MAVEN_OPTS</span><span class="p">=</span> # <span class="p">(</span><span class="n">see</span> <span class="n">below</span><span class="p">)</span>
-$ <span class="n">mvn</span> <span class="n">clean</span> <span class="n">install</span> # <span class="p">(</span><span class="n">maybe</span> <span class="n">with</span> <span class="o">-</span><span class="n">DskipTests</span> <span class="k">if</span> <span class="n">you</span> <span class="n">know</span> <span class="n">what</span> <span class="n">you</span><span class="o">&#39;</span><span class="n">re</span> <span class="n">doing</span><span class="p">)</span>
+<div class="codehilite"><pre>$ <span class="n">svn</span> <span class="n">co</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">svn</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">repos</span><span class="o">/</span><span class="n">asf</span><span class="o">/</span><span class="n">sling</span><span class="o">/</span><span class="n">trunk</span> <span class="n">sling</span> 
+$ <span class="n">cd</span> <span class="n">sling</span>  # <span class="n">you</span> <span class="n">are</span> <span class="n">now</span> <span class="n">in</span> <span class="n">the</span> <span class="n">Sling</span> <span class="n">SVN</span> <span class="n">checkout</span>
 $ <span class="n">cd</span> <span class="n">launchpad</span><span class="o">/</span><span class="n">builder</span>
-$ <span class="n">rm</span> <span class="o">-</span><span class="n">rf</span> <span class="p">.</span><span class="o">./</span><span class="n">builder</span><span class="o">/</span><span class="n">sling</span> # <span class="p">(</span><span class="k">if</span> <span class="n">needed</span><span class="p">,</span> <span class="n">to</span> <span class="n">cleanup</span> <span class="n">previous</span> <span class="n">state</span><span class="p">)</span>
-$ <span class="n">export</span> <span class="n">DBG</span><span class="p">=</span>&quot;<span class="o">-</span><span class="n">Xmx384M</span> <span class="o">-</span><span class="n">agentlib</span><span class="p">:</span><span class="n">jdwp</span><span class="p">...</span>&quot; # <span class="p">(</span><span class="n">see</span> <span class="n">below</span><span class="p">)</span> 
+$ <span class="n">mvn</span> <span class="o">--</span><span class="n">update</span><span class="o">-</span><span class="n">snapshots</span> <span class="n">clean</span> <span class="n">install</span>
+$ <span class="n">export</span> <span class="n">DBG</span><span class="p">=</span>&quot;<span class="o">-</span><span class="n">Xmx384M</span> <span class="o">-</span><span class="n">agentlib</span><span class="p">:</span><span class="n">jdwp</span><span class="p">...</span>&quot; # <span class="p">(</span><span class="n">see</span> <span class="n">below</span><span class="p">)</span>
 $ <span class="n">java</span> $<span class="n">DBG</span> <span class="o">-</span><span class="n">jar</span> <span class="n">target</span><span class="o">/</span><span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">sling</span><span class="p">.</span><span class="n">launchpad</span><span class="p">...</span> # <span class="p">(</span><span class="n">see</span> <span class="n">below</span><span class="p">)</span>
 </pre></div>
 
 
-<p>With this, Sling should be running at http://localhost:8080 with remote debugging active as per the $DBG variable.      </p>
+<p>With this, Sling should be running at http://localhost:8080 with remote debugging active as per the $DBG variable.</p>
 <h2 id="prerequisites">Prerequisites<a class="headerlink" href="#prerequisites" title="Permanent link">&para;</a></h2>
 <p>Before you begin, you need to have the following tools installed on your system:</p>
 <ul>
@@ -149,23 +146,6 @@ $ <span class="n">java</span> $<span cla
 </ul>
 <h2 id="environment-setup">Environment Setup<a class="headerlink" href="#environment-setup" title="Permanent link">&para;</a></h2>
 <p>The full build process requires quite a lot of resources, so you may run into limits. The following hints should show you what to setup before building Sling.</p>
-<h3 id="java-heap-space">Java Heap Space<a class="headerlink" href="#java-heap-space" title="Permanent link">&para;</a></h3>
-<ul>
-<li><em>Problem</em> - Build aborts with reports of <code>java.lang.OutOfMemoryError: Java heap space</code>. Alternatively the build may randomly fail during the integration tests.</li>
-<li><em>Platforms</em> - This happens on all platforms</li>
-<li><em>Fix</em> - Increase the values of the maximum heap and perm space for the build by setting or extending the <code>MAVEN_OPTS</code> environment variable.</li>
-</ul>
-<p>For 32bit platforms you should use</p>
-<div class="codehilite"><pre><span class="n">MAVEN_OPTS</span><span class="p">=</span>&quot;<span class="o">-</span><span class="n">Xmx256M</span> <span class="o">-</span><span class="n">XX</span><span class="p">:</span><span class="n">MaxPermSize</span><span class="p">=</span>256<span class="n">m</span>&quot;
-</pre></div>
-
-
-<p>For 64bit platforms, you should use</p>
-<div class="codehilite"><pre><span class="n">MAVEN_OPTS</span><span class="p">=</span>&quot;<span class="o">-</span><span class="n">Xmx512M</span> <span class="o">-</span><span class="n">XX</span><span class="p">:</span><span class="n">MaxPermSize</span><span class="p">=</span>512<span class="n">m</span>&quot;
-</pre></div>
-
-
-<p>For more information see <a href="https://issues.apache.org/jira/browse/SLING-443">SLING-443</a> and <a href="https://issues.apache.org/jira/browse/SLING-1782">SLING-1782</a>.</p>
 <h3 id="environment-variable-space">Environment Variable Space<a class="headerlink" href="#environment-variable-space" title="Permanent link">&para;</a></h3>
 <ul>
 <li>
@@ -234,20 +214,16 @@ $ <span class="n">java</span> $<span cla
 <li>Click OK</li>
 </ol>
 <h2 id="building-sling">Building Sling<a class="headerlink" href="#building-sling" title="Permanent link">&para;</a></h2>
+<p>Note that while it's possible to build the full Sling reactor, using the pom.xml file in the root of the SVN checkout, this should
+rarely be needed and it's almost always too slow to consider. Instead, it's recommended to build the Sling launchpad and the module
+you're working on at the moment.</p>
 <h3 id="with-the-maven-command-line-tool">With the Maven command line tool<a class="headerlink" href="#with-the-maven-command-line-tool" title="Permanent link">&para;</a></h3>
 <ol>
 <li>
-<p>Enter the directory, then do a full build and local install (below are unix/linux commands, slightly different under windows)</p>
+<p>Enter the directory, then do a build and local install of the launchpad (below are unix/linux commands, slightly different under windows)</p>
 <p>$ cd sling
-$ export MAVEN_OPTS="-Xmx256m -XX:MaxPermSize=128m"
-$ mvn -s /dev/null clean install</p>
-</li>
-</ol>
-<p>Note: On windows just leave out <code>/dev/null</code> and make sure you have an empty settings.xml file for maven (located in your user directory under .m2).</p>
-<ol>
-<li>
-<p>Enter the <code>launchpad/builder</code> directory and launch Sling for the first time</p>
-<p>$ cd launchpad/builder
+$ cd launchpad/builder # you are now in the Sling SVN checkout
+$ mvn --update-snapshots clean install
 $ java -jar target/org.apache.sling.launchpad-*.jar -c test -f -</p>
 </li>
 </ol>
@@ -263,6 +239,19 @@ When starting Sling inside the `launchpa
 </ul>
 <p>After all messages have been printed you should be able to open the Sling Management Console by pointing your web browser at <a href="http://localhost:8080/system/console">http://localhost:8080/system/console</a>. You will be prompted for a user name and password. Enter <code>admin</code> for both the user name and the password (this may be set on the <em>Configuration</em> page later). From this console, you can manage the installed bundles, modify configuration objects, dump a configuration status and see some system information.</p>
 <p>To stop Sling, just hit <code>Ctrl-C</code> in the console or click the <em>Stop</em> button on the <em>System Information</em> page of the Sling Management Console.</p>
+<ol>
+<li>
+<p>Enter the directory of the bundle you're working on, then do a build and deploy the bundle to the running launchpad instance</p>
+<p>$ cd sling
+$ cd bundles/servlets/get
+$ mvn clean install sling:install</p>
+</li>
+</ol>
+<p>The Maven build command ensure that:</p>
+<ul>
+<li>the bundle is installed in the local repository so future builds of the launchpad module will pick it up ( <code>install</code> goal )</li>
+<li>the bundle is deployed in the running launchpad instance ( <code>sling:install</code> goal )</li>
+</ul>
 <h3 id="with-m2eclipse">With M2Eclipse<a class="headerlink" href="#with-m2eclipse" title="Permanent link">&para;</a></h3>
 <ol>
 <li>Make sure you're in the Java perspective (Menu: Window-&gt;Open Perspective)</li>
@@ -329,7 +318,7 @@ For more information on this see the <a
 </ul>
 <p>If adding dependencies to the poms, run mvn eclipse:eclipse again and refresh the project in Eclipse. Debugging works as described above.</p>
       <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
-        Rev. 1674837 by cziegeler on Mon, 20 Apr 2015 13:08:02 +0000
+        Rev. 1771822 by rombert on Mon, 28 Nov 2016 22:28:05 +0000
       </div>
       <div class="trademarkFooter"> 
         Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project