mcconnell 2004/03/20 10:28:59
Modified: buildsystem maven-common-gump-build.xml
Log:
Move back content - going to take another approach with a test project.
Revision Changes Path
1.7 +147 -8 avalon/buildsystem/maven-common-gump-build.xml
Index: maven-common-gump-build.xml
===================================================================
RCS file: /home/cvs/avalon/buildsystem/maven-common-gump-build.xml,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- maven-common-gump-build.xml 20 Mar 2004 17:43:37 -0000 1.6
+++ maven-common-gump-build.xml 20 Mar 2004 18:28:58 -0000 1.7
@@ -58,6 +58,36 @@
</echo>
</target>
+ <target name="avalon:warn-avail-api-src" unless="api.src.present">
+ <echo>
+=======================================================================
+ NOTE!
+
+ The directory
+
+ ${maven.src.dir}/api
+
+ does not exist. This means the api jar that will be created will be
+ empty.
+=======================================================================
+ </echo>
+ </target>
+
+ <target name="avalon:warn-avail-impl-src" unless="impl.src.present">
+ <echo>
+=======================================================================
+ NOTE!
+
+ The directory
+
+ ${maven.src.dir}/impl
+
+ does not exist. This means the impl jar that will be created will be
+ empty.
+=======================================================================
+ </echo>
+ </target>
+
<target name="avalon:warn-avail-test-src" unless="test.src.present">
<echo>
=======================================================================
@@ -79,6 +109,8 @@
This project does not contain any java source files in
+ ${maven.src.dir}/api or
+ ${maven.src.dir}/impl or
${maven.src.dir}/java or
${maven.src.dir}/test or
@@ -90,6 +122,8 @@
<target name="avalon:warn-avail">
<antcall target="avalon:warn-avail-no-sources"/>
+ <antcall target="avalon:warn-avail-api-src"/>
+ <antcall target="avalon:warn-avail-impl-src"/>
<antcall target="avalon:warn-avail-test-src"/>
</target>
@@ -118,11 +152,15 @@
</condition>
<antcall target="avalon:warn-project.name"/>
+ <available file="${basedir}/src/api" property="api.src.present"/>
+ <available file="${basedir}/src/impl" property="impl.src.present"/>
<available file="${basedir}/src/java" property="java.src.present"/>
<available file="${basedir}/src/test" property="test.src.present"/>
<condition property="no.sources.available">
<and>
+ <not><isset property="api.src.present"/></not>
+ <not><isset property="impl.src.present"/></not>
<not><isset property="java.src.present"/></not>
<not><isset property="test.src.present"/></not>
</and>
@@ -132,10 +170,10 @@
</target>
<target name="avalon:jar"
- depends="avalon:init, avalon:java-compile, avalon:test,
avalon:regular-jar"/>
+ depends="avalon:init, avalon:api-compile, avalon:impl-compile,
avalon:java-compile, avalon:test, avalon:api-jar, avalon:impl-jar,
avalon:regular-jar"/>
<target name="avalon:java-compile" if="java.src.present"
- depends="avalon:init">
+ depends="avalon:init,avalon:api-compile,avalon:impl-compile">
<echo>
=======================================================================
Compiling Sources
@@ -143,6 +181,8 @@
</echo>
<mkdir dir="${maven.build.dir}"/>
<mkdir dir="${maven.build.dir}/classes"/>
+ <mkdir dir="${maven.build.dir}/api-classes"/><!-- to ensure <classpath/>
works -->
+ <mkdir dir="${maven.build.dir}/impl-classes"/><!-- to ensure <classpath/>
works -->
<javac
destdir="${maven.build.dir}/classes"
excludes="**/package.html"
@@ -152,6 +192,8 @@
<src>
<pathelement path="${maven.src.dir}/java"/>
+ <pathelement path="${maven.build.dir}/api-classes"/>
+ <pathelement path="${maven.build.dir}/impl-classes"/>
</src>
</javac>
@@ -161,15 +203,83 @@
</copy>
</target>
+ <target name="avalon:api-compile" if="api.src.present"
+ depends="avalon:init">
+ <echo>
+=======================================================================
+ Compiling API Sources
+=======================================================================
+ </echo>
+ <mkdir dir="${maven.build.dir}"/>
+ <mkdir dir="${maven.build.dir}/api-classes"/>
+ <javac
+ destdir="${maven.build.dir}/api-classes"
+ excludes="**/package.html"
+ debug="${maven.compile.debug}"
+ deprecation="${maven.compile.deprecation}"
+ optimize="${maven.compile.optimize}">
+
+ <src>
+ <pathelement path="${maven.src.dir}/api"/>
+ </src>
+ </javac>
+
+ <mkdir dir="${maven.build.dir}/classes"/>
+ <copy todir="${maven.build.dir}/classes">
+ <fileset dir="${maven.build.dir}/api-classes"/>
+ </copy>
+ <mkdir dir="${maven.build.dir}/src"/>
+ <copy todir="${maven.build.dir}/src">
+ <fileset dir="${maven.src.dir}/api"/>
+ </copy>
+ </target>
+
+ <target name="avalon:impl-compile" if="impl.src.present"
+ depends="avalon:init,avalon:api-compile">
+ <echo>
+=======================================================================
+ Compiling Implementation Sources
+=======================================================================
+ </echo>
+ <mkdir dir="${maven.build.dir}"/>
+ <mkdir dir="${maven.build.dir}/impl-classes"/>
+ <mkdir dir="${maven.build.dir}/api-classes"/><!-- to ensure <classpath/>
works -->
+ <javac
+ destdir="${maven.build.dir}/impl-classes"
+ excludes="**/package.html"
+ debug="${maven.compile.debug}"
+ deprecation="${maven.compile.deprecation}"
+ optimize="${maven.compile.optimize}">
+
+ <src>
+ <pathelement path="${maven.src.dir}/impl"/>
+ </src>
+ <classpath>
+ <pathelement path="${maven.build.dir}/api-classes"/>
+ </classpath>
+ </javac>
+
+ <mkdir dir="${maven.build.dir}/classes"/>
+ <copy todir="${maven.build.dir}/classes">
+ <fileset dir="${maven.build.dir}/impl-classes"/>
+ </copy>
+ <mkdir dir="${maven.build.dir}/src"/>
+ <copy todir="${maven.build.dir}/src">
+ <fileset dir="${maven.src.dir}/impl"/>
+ </copy>
+ </target>
+
<target name="avalon:test" if="test.src.present"
- depends="avalon:init,avalon:java-compile">
+
depends="avalon:init,avalon:api-compile,avalon:impl-compile,avalon:java-compile">
<echo>
=======================================================================
Compiling Tests
======================================================================
</echo>
<mkdir dir="${maven.build.dir}/test-classes"/>
- <mkdir dir="${maven.build.dir}/classes"/>
+ <mkdir dir="${maven.build.dir}/classes"/><!-- to ensure <classpath/> works
-->
+ <mkdir dir="${maven.build.dir}/api-classes"/><!-- to ensure <classpath/>
works -->
+ <mkdir dir="${maven.build.dir}/impl-classes"/><!-- to ensure <classpath/>
works -->
<javac
destdir="${maven.build.dir}/test-classes"
excludes="**/package.html"
@@ -182,6 +292,8 @@
</src>
<classpath>
<pathelement path="${maven.build.dir}/classes"/>
+ <pathelement path="${maven.build.dir}/api-classes"/>
+ <pathelement path="${maven.build.dir}/impl-classes"/>
</classpath>
</javac>
@@ -190,7 +302,6 @@
Running tests
=======================================================================
</echo>
-
<taskdef
name="junit"
classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask"/>
@@ -207,6 +318,8 @@
<formatter type="plain" usefile="${maven.junit.usefile}"/>
<classpath>
<pathelement location="${maven.build.dir}/classes"/>
+ <pathelement path="${maven.build.dir}/api-classes"/>
+ <pathelement path="${maven.build.dir}/impl-classes"/>
<pathelement location="${maven.build.dir}/test-classes"/>
</classpath>
<batchtest todir="${maven.build.dir}/test-reports">
@@ -237,9 +350,9 @@
</junitreport>
</target>
-
+
<target name="avalon:regular-jar"
- depends="avalon:init,avalon:java-compile">
+
depends="avalon:init,avalon:api-compile,avalon:impl-compile,avalon:java-compile">
<echo>
=======================================================================
Building jar
@@ -249,10 +362,34 @@
<jar destfile="${maven.build.dir}/${project.name}-${project.version}.jar"
basedir="${maven.build.dir}/classes"/>
</target>
+ <target name="avalon:api-jar"
+ depends="avalon:init,avalon:api-compile">
+ <echo>
+=======================================================================
+ Building API jar
+=======================================================================
+ </echo>
+ <mkdir dir="${maven.build.dir}/api-classes"/>
+ <jar
destfile="${maven.build.dir}/${project.name}-${project.version}-api.jar"
basedir="${maven.build.dir}/api-classes"/>
+ </target>
+
+ <target name="avalon:impl-jar"
+ depends="avalon:init,avalon:impl-compile">
+ <echo>
+=======================================================================
+ Building Implementation jar
+=======================================================================
+ </echo>
+ <mkdir dir="${maven.build.dir}/impl-classes"/>
+ <jar
destfile="${maven.build.dir}/${project.name}-${project.version}-impl.jar"
basedir="${maven.build.dir}/impl-classes"/>
+ </target>
+
<target name="avalon:javadocs" depends="avalon:init,avalon:jar">
<mkdir dir="${maven.build.dir}/docs"/>
<mkdir dir="${maven.build.dir}/docs/apidocs"/>
- <mkdir dir="${maven.build.dir}/classes"/>
+ <mkdir dir="${maven.build.dir}/classes"/><!-- to ensure <classpath/> works
-->
+ <mkdir dir="${maven.build.dir}/api-classes"/><!-- to ensure <classpath/>
works -->
+ <mkdir dir="${maven.build.dir}/impl-classes"/><!-- to ensure <classpath/>
works -->
<property name="copyright"
value="Copyright &copy; ${project.copyright.year} Apache Software
Foundation. All Rights Reserved." />
@@ -271,6 +408,8 @@
<link href="http://avalon.apache.org/framework/api/"/>
<classpath>
<path location="${maven.build.dir}/classes"/>
+ <path location="${maven.build.dir}/api-classes"/>
+ <path location="${maven.build.dir}/impl-classes"/>
</classpath>
</javadoc>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]