Author: schor
Date: Wed Jul  3 14:10:10 2013
New Revision: 1499413

URL: http://svn.apache.org/r1499413
Log:
[UIMA-2471] add documentation for JCasGen tool describing jcasgen-maven-plugin

Modified:
    uima/uimaj/trunk/uima-docbook-tools/src/docbook/tools.jcasgen.xml

Modified: uima/uimaj/trunk/uima-docbook-tools/src/docbook/tools.jcasgen.xml
URL: 
http://svn.apache.org/viewvc/uima/uimaj/trunk/uima-docbook-tools/src/docbook/tools.jcasgen.xml?rev=1499413&r1=1499412&r2=1499413&view=diff
==============================================================================
--- uima/uimaj/trunk/uima-docbook-tools/src/docbook/tools.jcasgen.xml (original)
+++ uima/uimaj/trunk/uima-docbook-tools/src/docbook/tools.jcasgen.xml Wed Jul  
3 14:10:10 2013
@@ -56,6 +56,11 @@ under the License.
        targetdoc="&uima_docs_ref;"
        targetptr="ugr.ref.jcas.documentannotation_issues"/>.</para></warning>
   
+  <para>JCasGen can be run in many ways.  For Eclipse users using the 
Component Descriptor Editor, there's a button
+  on the Type System Description page to run it on that type system.  There's 
also a jcasgen-maven-plugin to use 
+  in maven build scripts.  There's a menu-driven GUI tool for it.    
+  And, there are command line scripts you can use to invoke it.</para>
+  
   <para>There are several versions of JCasGen. The basic version reads an XML 
descriptor
     which contains a type system descriptor, and generates the corresponding 
Java Class
     Models for those types. Variants exist for the Eclipse environment that 
allow merging the
@@ -182,4 +187,64 @@ under the License.
       configurator tool has an option to enable/disable this function.</para>
   </section>
   
+  <section id="ugr.tools.jcasgen.maven_plugin">
+    <title>Using the jcasgen-maven-plugin</title>
+    
+    <para>For Maven builds, you can use the jcasgen-maven-plugin to take one 
or more
+    top level descriptors (Type System or Analysis Engine descriptors), merge 
them
+    together in the standard way UIMA merges type definitions, and produce the 
corresponding
+    JCas source classes.  These, by default, are generated to the standard 
spot for Maven
+    builds for generated files.</para>
+    
+    <para>You can use ant-like include / exclude patterns to specify the top 
level descriptor
+    files.  If you set &lt;limitToProject> to true, then after a complete UIMA 
type system
+    merge is done with all of the types, including those that are imported, 
only those
+    types which are defined within this Maven project (that is, in some 
subdirectory of the project)
+    will be generated.</para>
+    
+    <para>To use the jcasgen-maven-plugin, specify it in the POM as 
follows:</para>
+    <programlisting><![CDATA[<plugin>
+  <groupId>org.apache.uima</groupId>
+  <artifactId>jcasgen-maven-plugin</artifactId>
+  <version>2.4.1</version>  <!-- change this to the latest version -->
+  <executions>
+    <execution>
+      <goals><goal>generate</goal></goals>  <!-- this is the only goal -->
+      <!-- runs in phase process-resources by default -->
+      <configuration>
+
+        <!-- REQUIRED -->
+           <typeSystemIncludes>
+                     <!-- one or more ant-like file patterns 
+                          identifying top level descriptors --> 
+                     
<typeSystemInclude>src/main/resources/MyTs.xml</typeSystemInclude
+                   </typeSystemIncludes>
+
+        <!-- OPTIONAL -->
+        <!-- a sequence of ant-like file patterns 
+             to exclude from the above include list -->
+                   <typeSystemExcludes>
+                   </typeSystemExcludes>
+
+        <!-- OPTIONAL -->
+        <!-- where the generated files go -->
+        <!-- default value: 
+             ${project.build.directory}/generated-sources/jcasgen" -->
+                   <outputDirectory> 
+        </outputDirectory>
+
+        <!-- true or false, default = false -->
+        <!-- if true, then although the complete merged type system 
+             will be created internally, only those types whose
+             definition is contained within this maven project will be
+             generated.  The others will be presumed to be 
+             available via other projects. -->
+        <!-- OPTIONAL -->
+        <limitToProject>false</limitToProject>
+                 </configuration>     
+    </execution>
+  </executions>
+</plugin>]]></programlisting>
+  </section>
+  
 </chapter>
\ No newline at end of file


Reply via email to