Revision: 15252
          http://gate.svn.sourceforge.net/gate/?rev=15252&view=rev
Author:   markagreenwood
Date:     2012-01-29 13:47:26 +0000 (Sun, 29 Jan 2012)
Log Message:
-----------
a re-written POM that now pulls in only what we actually want, plus an ant 
target for making sure

Modified Paths:
--------------
    gate/trunk/build/deploy/maven/build.xml
    gate/trunk/build/deploy/maven/gate-core.pom.template

Modified: gate/trunk/build/deploy/maven/build.xml
===================================================================
--- gate/trunk/build/deploy/maven/build.xml     2012-01-29 13:35:38 UTC (rev 
15251)
+++ gate/trunk/build/deploy/maven/build.xml     2012-01-29 13:47:26 UTC (rev 
15252)
@@ -58,6 +58,33 @@
         </artifact:install>
     </target>
 
+    <target name="test.snapshot" depends="snapshot-install">
+        <artifact:dependencies filesetId="dependency.fileset" 
versionsId="dependency.versions">        
+            <dependency groupId="uk.ac.gate" artifactId="gate-core" 
version="${gate.version}"/>
+        </artifact:dependencies>
+        <delete dir="lib"/>        
+        <copy todir="lib">
+            <fileset refid="dependency.fileset" />
+            <!-- This mapper strips off all leading directory information -->
+            <mapper classpathref="maven-ant-tasks.classpath" 
classname="org.apache.maven.artifact.ant.VersionMapper" 
from="${dependency.versions}" to="flatten" />
+        </copy>
+
+        <fileset dir="lib" id="onlyinmaven" includes="**/*.jar"> 
+            <present present="srconly" targetdir="${top}/lib"/> 
+        </fileset> 
+        <echo>these files are only in maven/lib : 
${toString:onlyinmaven}</echo> 
+
+        <fileset dir="${top}/lib" id="onlyingate" includes="**/*.jar"> 
+            <present present="srconly" targetdir="lib"/> 
+        </fileset> 
+        <echo> these files are only in gate/lib : ${toString:onlyingate}</echo>
+
+        <fileset dir="lib" id="different" includes="**/*.jar" 
excludes="gate-core.jar">
+            <different targetdir="${top}/lib" ignoreFileTimes="true"/> 
+        </fileset> 
+        <echo>        these files are different : ${toString:different}</echo>
+    </target>
+
     <!--
     Additional targets to publish new releases to sonatype staging
    

Modified: gate/trunk/build/deploy/maven/gate-core.pom.template
===================================================================
--- gate/trunk/build/deploy/maven/gate-core.pom.template        2012-01-29 
13:35:38 UTC (rev 15251)
+++ gate/trunk/build/deploy/maven/gate-core.pom.template        2012-01-29 
13:47:26 UTC (rev 15252)
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
     <modelVersion>4.0.0</modelVersion>
     <groupId>uk.ac.gate</groupId>
     <artifactId>gate-core</artifactId>
@@ -19,174 +20,294 @@
     <url>http://gate.ac.uk/</url>
     <packaging>jar</packaging>
     <dependencies>
+        <!-- things that we repackage under an alternative package name -->
         <dependency>
+            <groupId>uk.ac.gate</groupId>
+            <artifactId>gate-asm</artifactId>
+            <version>3.1</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>uk.ac.gate</groupId>
+            <artifactId>gate-compiler-jdt</artifactId>
+            <version>3.7.1</version>
+            <scope>compile</scope>
+        </dependency>
+  
+        <!-- needed to build the JAPE parser -->
+        <dependency>
+            <groupId>net.java.dev.javacc</groupId>
+            <artifactId>javacc</artifactId>
+            <version>5.0</version>
+            <scope>compile</scope>
+        </dependency>
+
+        <!-- needed to prodcue the nice HTML versions of the Java code that 
get added to the javadocs -->
+        <dependency>
+            <groupId>de.java2html</groupId>
+            <artifactId>java2html</artifactId>
+            <version>5.0</version>
+            <scope>compile</scope>
+        </dependency>
+
+        <!-- needed to ensure the same version across configurations -->
+        <dependency>
+            <groupId>commons-logging</groupId>
+            <artifactId>commons-logging</artifactId>
+            <version>1.1.1</version>
+            <scope>compile</scope>
+        </dependency>
+
+        <!-- used for escaping strings in the Annotation Stack and elsewhere 
-->
+        <dependency>
+            <groupId>commons-lang</groupId>
+            <artifactId>commons-lang</artifactId>
+            <version>2.6</version>
+            <scope>compile</scope>
+        </dependency>
+
+        <!-- used to load files into String variables as well as helping to 
close streams etc. -->
+        <dependency>
             <groupId>commons-io</groupId>
             <artifactId>commons-io</artifactId>
             <version>2.1</version>
+            <scope>compile</scope>
         </dependency>
+
+        <!-- the logging framework GATE uses -->
         <dependency>
             <groupId>log4j</groupId>
             <artifactId>log4j</artifactId>
             <version>1.2.16</version>
+            <scope>compile</scope>
         </dependency>
+
+        <!-- used extensively throughout GATE for processing XML files -->
         <dependency>
             <groupId>jdom</groupId>
             <artifactId>jdom</artifactId>
             <version>1.0</version>
+            <scope>compile</scope>
         </dependency>
+
+        <!-- used to parse and load HTML documents into GATE -->        
         <dependency>
-            <groupId>uk.ac.gate</groupId>
-            <artifactId>gate-asm</artifactId>
-            <version>3.1</version>
-        </dependency>
-        <!-- Document importing dependencies -->
-        <dependency>
             <groupId>net.sourceforge.nekohtml</groupId>
             <artifactId>nekohtml</artifactId>
             <version>1.9.14</version>
-        </dependency>
-        <dependency>
-            <groupId>xerces</groupId>
-            <artifactId>xercesImpl</artifactId>
-            <version>2.9.1</version>
-            <!-- We don't need the xml-apis transitive dep as it's part of
-            Java core -->
+            <scope>compile</scope>
             <exclusions>
+                <!-- exclude stuff that is part of Java 6 core -->
                 <exclusion>
                     <groupId>xml-apis</groupId>
                     <artifactId>xml-apis</artifactId>
                 </exclusion>
             </exclusions>
         </dependency>
+
+        <!-- the actual Tika pased format parsers -->
         <dependency>
             <groupId>org.apache.tika</groupId>
             <artifactId>tika-parsers</artifactId>
             <version>1.0</version>
+            <scope>runtime</scope>
+
+            <exclusions>
+                <!-- we don't currently use the RSS/ATOM aspects of Tika so we 
don't need ROME -->
+                <exclusion>
+                    <groupId>rome</groupId>
+                    <artifactId>rome</artifactId>
+                </exclusion>
+
+                <!-- we don't currently support netCDF documents so we don't 
need this -->
+                <exclusion>
+                    <groupId>edu.ucar</groupId>
+                    <artifactId>netcdf</artifactId>
+                </exclusion>
+
+                <!-- we don't use Tika to parse HTML so we don't need it's 
HTML parser -->
+                <exclusion>
+                    <groupId>org.ccil.cowan.tagsoup</groupId>
+                    <artifactId>tagsoup</artifactId>
+                </exclusion>
+
+                <!-- we don't use Tika to parse Java classes so we don't need 
ASM -->
+                <exclusion>
+                    <groupId>asm</groupId>
+                    <artifactId>asm</artifactId>
+                </exclusion>
+
+                <!-- we exclude boilerpipe as it isn't required for Tika given 
the way we
+                     currently configure it, and it contains a copy of 
NekoHTML which causes
+                     HTML parsing in GATE to change, and the tests to break -->
+                <exclusion>
+                    <groupId>de.l3s.boilerpipe</groupId>
+                    <artifactId>boilerpipe</artifactId>
+                </exclusion>
+
+                <!-- exclude stuff that is part of Java 6 core -->
+                <exclusion>
+                    <groupId>org.apache.geronimo.specs</groupId>
+                    <artifactId>geronimo-stax-api_1.0_spec</artifactId>
+                </exclusion>
+
+            </exclusions>
+
         </dependency>
+
+        <!-- We use Woodstox instead of the default Sun StAX implementation as 
it seems to behave better.
+             NOTE: I don't know if this is still the case but it seems safer 
not to break things! -->
         <dependency>
             <groupId>org.codehaus.woodstox</groupId>
             <artifactId>wstx-lgpl</artifactId>
             <version>3.2.3</version>
-            <!-- Exclude the stax-api transitive dependency as GATE 6.1 and
-            later requires Java 6, which includes this API in core -->
+            <scope>compile</scope>
             <exclusions>
+                <!-- exclude stuff that is part of Java 6 core -->
                 <exclusion>
                     <groupId>stax</groupId>
                     <artifactId>stax-api</artifactId>
                 </exclusion>
             </exclusions>
         </dependency>
+
+        <!-- we need Ivy both for processing this file and for creole plugins 
which use the IVY element -->
         <dependency>
             <groupId>org.apache.ivy</groupId>
             <artifactId>ivy</artifactId>
             <version>2.2.0</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>ant</groupId>
-                    <artifactId>*</artifactId>
-                </exclusion>
-            </exclusions>
+            <scope>compile</scope>
         </dependency>
 
-        <!-- Apache Ant.  Required by the GATE Ant tasks and also by the
-             developer GUI as Ant classes are referenced by NameBearerHandle to
-             implement the "export for GATECloud.net" function. -->
+        <!-- ANT is used internally by GATE for some tasks, such as the export 
for GATECloud.net -->
         <dependency>
             <groupId>org.apache.ant</groupId>
             <artifactId>ant</artifactId>
-            <version>${ant.version}</version>
+            <version>1.8.1</version>
+            <scope>compile</scope>
         </dependency>
+        
+        <!-- this provides the for loop support we use in the build file -->
         <dependency>
-            <groupId>org.apache.ant</groupId>
-            <artifactId>ant-launcher</artifactId>
-            <version>${ant.version}</version>
+            <groupId>ant-contrib</groupId>
+            <artifactId>ant-contrib</artifactId>
+            <version>1.0b3</version>
+            <scope>compile</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>ant</groupId>
+                    <artifactId>ant</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
-        <dependency>
-            <groupId>org.apache.ant</groupId>
-            <artifactId>ant-junit</artifactId>
-            <version>${ant.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.ant</groupId>
-            <artifactId>ant-nodeps</artifactId>
-            <version>${ant.version}</version>
-        </dependency>
 
-        <!-- Optional dependencies -->
-        <!-- You need to expicitly add the below dependencies in your project, 
if you
-         intend to use parts of GATE that rely on them. -->
-
-        <!-- XStream (required for loading and saving .gapp files) -->
+        <!--required for loading and saving .gapp files and by sime plugins.
+            we pull in the full XPP3 so we only need XStream's master artifact 
-->
         <dependency>
             <groupId>com.thoughtworks.xstream</groupId>
             <artifactId>xstream</artifactId>
             <version>1.4.2</version>
-            <optional>true</optional>
+            <scope>compile</scope>
+            <exclusions>
+                <!-- we will pull in the full xpp3 so we don't need these -->  
              
+                <exclusion>
+                    <groupId>xmlpull</groupId>
+                    <artifactId>xmlpull</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>xpp3</groupId>
+                    <artifactId>xpp3_min</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
+
+        <!-- XPP3 provides the actual implementation under pinning our use of 
XStream -->
         <dependency>
             <groupId>xpp3</groupId>
             <artifactId>xpp3</artifactId>
             <version>1.1.3.4.O</version>
-            <optional>true</optional>
+            <scope>runtime</scope>
         </dependency>
 
-        <!-- repackaging of the Eclipse JDT compiler under an alternative
-             package name; that way gate can be embedded in software
-             that depends on another version of that compiler.
-             Required in order to be able to load JAPE grammars. -->
+        <!-- needed by XSteam at runtime -->
         <dependency>
-            <groupId>uk.ac.gate</groupId>
-            <artifactId>gate-compiler-jdt</artifactId>
-            <version>3.7.1</version>
-            <optional>true</optional>
+            <groupId>jaxen</groupId>
+            <artifactId>jaxen</artifactId>
+            <version>1.1</version>
+            <scope>runtime</scope>
+            <exclusions>
+                <!-- we don't need any of these dependencies -->
+                <exclusion>
+                    <groupId>xml-apis</groupId>
+                    <artifactId>xml-apis</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>xerces</groupId>
+                    <artifactId>xercesImpl</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>xom</groupId>
+                    <artifactId>xom</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
 
-        <!-- Getopt command-line argument processor.  Required by gate.Main, so
-             you need this if you intend to show the GATE Developer GUI in your
-             application -->
+        <!-- used to parse command line options passed to the GATE GUI -->
         <dependency>
             <groupId>urbanophile</groupId>
             <artifactId>java-getopt</artifactId>
             <version>1.0.9</version>
-            <optional>true</optional>
+            <scope>compile</scope>
         </dependency>
 
-        <!-- Required for Spring Framework support in GATE -->
+        <!-- required for Spring Framework support in GATE -->
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-beans</artifactId>
-            <version>${spring.version}</version>
-            <optional>true</optional>
+            <version>2.0.8</version>
+            <scope>compile</scope>
         </dependency>
-        <!-- Required when using the <gate:pooled-proxy> decorator in Spring 
-->
+
+        <!-- required when using the <gate:pooled-proxy> decorator in Spring 
-->
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-aop</artifactId>
-            <version>${spring.version}</version>
-            <optional>true</optional>
+            <version>2.0.8</version>
+            <scope>compile</scope>
         </dependency>
 
-        <!-- Apache Lucene.  Required by the ANNIC searchable DataStore. -->
+        <!-- required for indexing datastores (not used by ANNIC) -->
         <dependency>
             <groupId>org.apache.lucene</groupId>
             <artifactId>lucene-core</artifactId>
-            <version>3.0.1</version>
-            <optional>true</optional>
+            <version>3.5.0</version>
+            <scope>compile</scope>
         </dependency>
 
-        <!-- XMLUnit.  Used only by the test suite. -->
+        <!-- Used for comparing XML files during some of the GATE tests -->
         <dependency>
             <groupId>xmlunit</groupId>
             <artifactId>xmlunit</artifactId>
             <version>1.2</version>
-            <optional>true</optional>
-            <scope>test</scope>
+            <scope>compile</scope>
         </dependency>
+
+        <!-- Used for testing GATE -->
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.10</version>
+            <scope>compile</scope>
+            <exclusions>
+                <!-- we don't use the hamcrest matchers -->
+                <exclusion>
+                    <groupId>org.hamcrest</groupId>
+                    <artifactId>hamcrest-core</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
     </dependencies>
-    <properties>
-        <ant.version>1.8.1</ant.version>
-        <spring.version>2.0.8</spring.version>
-    </properties>
     <developers>
         <developer>
             <id>gate-team</id>

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
_______________________________________________
GATE-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gate-cvs

Reply via email to