<html devsite>
<head>
  <meta name="project_path" value="/_project.yaml">
  <meta name="book_path" value="/versions/6.1.0/_book.yaml">
</head>
<body>

<h1 class="page-title" id="modules.JavaPluginData">JavaPluginData</h1>

<!-- {% raw %} -->

Information about a Java compatible plugin.<p>That is an annotation processor recognized by the Java compiler.

<h2>Members</h2>
<ul>
    <li>
    <a href="#processor_classes">processor_classes</a>
  </li>
      <li>
    <a href="#processor_data">processor_data</a>
  </li>
      <li>
    <a href="#processor_jars">processor_jars</a>
  </li>
  </ul>

      <h2 id="processor_classes">processor_classes</h2>
        <p><pre class="rule-signature"><a class="anchor" href="depset.html">depset</a> JavaPluginData.processor_classes</pre></p>

    Returns the fully qualified class names needed to apply the encapsulated annotation processors.


        <h2 id="processor_data">processor_data</h2>
        <p><pre class="rule-signature"><a class="anchor" href="depset.html">depset</a> JavaPluginData.processor_data</pre></p>

    Returns the files needed during execution by the encapsulated annotation processors.


        <h2 id="processor_jars">processor_jars</h2>
        <p><pre class="rule-signature"><a class="anchor" href="depset.html">depset</a> JavaPluginData.processor_jars</pre></p>

    Returns the jars needed to apply the encapsulated annotation processors.



</body>
</html>

<!-- {% endraw %} -->
