<!--
  ~ Copyright 2009 the original author or authors.
  ~
  ~ Licensed 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.
  -->
<chapter id="project_reports_plugin" xmlns:xi="http://www.w3.org/2001/XInclude">
    <title>The Project Report Plugin</title>

    <note>
        <para>The Project report plugin is currently a work in progress, and at this stage doesn't do particularly
            much. We plan to add much more to these reports in the next release of Gradle.
        </para>
    </note>

    <para>The Project report plugin adds some tasks to your project which generate reports containing useful
        information about your build.
    </para>

    <section>
        <title>Tasks</title>
        <para>The project report plugin defines the following tasks:</para>
        <table>
            <title>Project report plugin - tasks</title>
            <thead>
                <tr>
                    <td>Task name</td>
                    <td>Depends on</td>
                    <td>Type</td>
                </tr>
            </thead>
            <tr>
                <td>
                    <literal>dependencyReport</literal>
                </td>
                <td>-</td>
                <td><apilink class="org.gradle.api.tasks.diagnostics.DependencyReportTask"/></td>
            </tr>
            <tr>
                <td>
                    <literal>propertyReport</literal>
                </td>
                <td>-</td>
                <td><apilink class="org.gradle.api.tasks.diagnostics.PropertyReportTask"/></td>
            </tr>
            <tr>
                <td>
                    <literal>taskReport</literal>
                </td>
                <td>-</td>
                <td><apilink class="org.gradle.api.tasks.diagnostics.TaskReportTask"/></td>
            </tr>
            <tr>
                <td>
                    <literal>projectReport</literal>
                </td>
                <td>
                    <literal>dependencyReport</literal>, <literal>propertyReport</literal>, <literal>taskReport</literal>
                </td>
                <td><apilink class="org.gradle.api.Task"/></td>
            </tr>
        </table>
    </section>

    <section>
        <title>Project layout</title>
        <para>The project report plugin does not require any particular project layout.</para>
    </section>

    <section>
        <title>Dependency management</title>
        <para>The project report plugin does not define any dependency configurations.</para>
    </section>

    <section>
        <title>Convention properties</title>
        <para>The project report defines the following convention properties:</para>
        <table>
            <title>Project report plugin - directory properties</title>
            <thead>
                <tr>
                    <td>Directory Name Property</td>
                    <td>Directory File Property</td>
                    <td>Default Name</td>
                    <td>Default File</td>
                </tr>
            </thead>
            <xi:include href="reportingBasePluginProperties.xml"/>
            <tr>
                <td>projectReportDirName</td>
                <td>projectReportDir</td>
                <td><filename>project</filename></td>
                <td><filename><replaceable>reportsDir</replaceable>/project</filename></td>
            </tr>
        </table>
    </section>
    
</chapter>