<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
    <head>  
        <title>NetBeans IDE - Groovy</title>
        <meta http-equiv="content-language" content="en">
        <meta name="description" content="DESCRIPTION HERE">
        <link rel="stylesheet" type="text/css" href="../../features.css">
        <link rel="stylesheet" type="text/css" href="/images_www/js/colorbox/colorbox.css">
    </head>
    <body>
        <script type="text/javascript" src="/images_www/js/colorbox/jquery.colorbox-min.js"></script>

        <script type="text/javascript">
            $(document).ready(function() {
                $('a.cbox').colorbox({rel: 'cbox', opacity: 0.7});
            });
        </script>
        <div style="margin:10px 20px 0px 0px;">
            <h1>Groovy</h1>
            <p> <a href="../../images_www/v7/3/features/groovy-full.png"><img
                        alt="Groovy and Grails development in the NetBeans IDE"
                        src="../../images_www/v7/3/features/groovy-cut.png" class="box"
                        style="border: 0px solid;"><br>
                    <span class="font-11">Click image for fullscreen preview</span></a>
            </p>
            <p class="intro">
                NetBeans IDE provides tools for Groovy and 
                Grails developers with integration
                into Java EE and Java SE projects.
            </p>
            <div class="line">&nbsp;</div>

            <!-- left text section start -->
            <a name="o1"></a>
            <span class="overview-right" id="im1"><a href="../../images_www/v7/3/features/groovy-editor-full.png" class="cbox" title="Groovy Editor"><img src="../../images_www/v7/3/features/groovy-editor-cut.png" width="320" alt="Groovy Editor" /></a></span>
            <h2>Groovy Editor</h2>
            <p>The Groovy editor supports 
                syntax highlighting and code folding. 
                Code completion can handle method
                reference and safe dereference operators, while
                it also provides names of dynamic methods 
                for Grails domain and controller classes.
                The editor highlights occurrences and is 
                integrated with the IDE's navigator.</p>
            <p>Groovy integrates well with Java in 
                any Java EE and Java SE project. You can call 
                Groovy classes from Java code
                and Java classes from Groovy code.</p> 
            <a href="../../kb/docs/java/groovy-quickstart.html" class="arr-link">
                Introduction to Groovy</a>
            <div class="line">&nbsp;</div>
            <!-- left text section end -->

            <!-- right text section start -->
            <a name="o2"></a>
            <span class="overview-left" id="im2"><a href="../../images_www/v7/3/features/groovy-grails-full.png" class="cbox" title="Grails"><img src="../../images_www/v7/3/features/groovy-grails-cut.png" width="320" alt="Grails" /></a></span>
            <h2>Grails</h2>
            <p> For the web tier, the IDE 
                supports the Grails framework. 
                Multiple Grails actions are integrated 
                into the IDE's workflow. 
                You control the deployment status of your Grails
                application from the Services window, 
                you can run Grails generators, run 
                Grails commands on projects, and build
                Groovy Server Pages (GSP).</p>
            <p>The IDE also opens existing Grails 
                projects without adding any metadata to it.</p>
            <a href="../../kb/docs/web/grails-quickstart.html" class="arr-link">
                Introduction to the Grails Framework</a>
            <div class="line">&nbsp;</div>
            <!-- right text section end -->

            <!-- left text section start -->
            <a name="o3"></a>
            <span id="im3" class="overview-right"><a href="../../images_www/v7/3/features/groovy-gradle.png" class="cbox" title="Gradle"><img src="../../images_www/v7/3/features/groovy-gradle-cut.png" alt=""  /></a></span>
            <h2>Griffon and Gradle</h2>
            <p>
                Community-contributed plugins are available
                for the following Groovy-oriented
                tools:</p>
            <p><ul>
                <li>Griffon, the 
                    Groovy-based desktop framework.</li>
                <li>Gradle, the Groovy-based build system.</li>
            </ul>
            <a href="http://plugins.netbeans.org/plugin/18664/griffon" class="arr-link">
                Griffon plugin</a>
            <br/><a href="http://plugins.netbeans.org/plugin/44510/gradle-support" class="arr-link">
                Gradle plugin</a>
            <div class="line">&nbsp;</div>
            <!-- left text section end -->

            <h2>See Also</h2>
            <ul class="bigger">
                <li><a href="../../community/releases/81/index.html">NetBeans IDE 8.1 Release Page</a> for a list of highlighted features in the latest stable release.</li>                
                <li><a href="../../kb/trails/java-se.html">General Java Development Learning Trail</a> for tutorials that will help you get started.</li> 
            </ul>

        </div>
    </body>
</html>
