You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ant.apache.org by ba...@goodconsultants.com on 2003/12/15 18:53:57 UTC

How can I select different classpath for building different apps?

All,

In one single build.xml, how can I select different set of classpaths? for 
Tomcat and for other apps?

I try to do the followings:

<target name="tomcat" if="system.CATALINA_HOME">

        <antcall target="clean"/>
        <antcall target="init-tomcat"/>
        <antcall target="compile-newserver"/>
        <antcall target="dist-tomcat"/>
        <antcall target="deploy-tomcat"/>

</target>

In the init-tomcat target, I have the followings:

<target name="init-tomcat">

        <echo message="CATALINA_HOME is ${system.CATALINA_HOME}"/>

        <path id="compile.classpath">

        <pathelement location="${catalina.home}/common/classes"/>
        <fileset dir="${catalina.home}/common/endorsed">
                <include name="*.jar"/>
        </fileset>
        <fileset dir="${catalina.home}/common/lib">
                <include name="*.jar"/>
        </fileset>

        <pathelement location="${catalina.home}/shared/classes"/>
        <fileset dir="${catalina.home}/shared/lib">
                <include name="*.jar"/>
        </fileset>

        </path>

</target>

Unfortunately, it does not work setting classpath like this... Any advice? 

Thanks

Barry


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Re: How can I select different classpath for building different apps?

Posted by ba...@goodconsultants.com.
Antoine,

Thanks for replying... It doesnt seem to work. Would you please tell me what i 
did wrong? Here is the code:

TARGET:

<target name="classpath-tomcat">

        <echo message="classpath-tomcat: CATALINA_HOME is 
${system.CATALINA_HOME}"/>

        <path id="compile.classpath">
        <pathelement location="${catalina.home}/common/classes"/>
        <fileset dir="${catalina.home}/common/endorsed">
                <include name="*.jar"/>
        </fileset>

        <fileset dir="${catalina.home}/common/lib">
                <include name="*.jar"/>
        </fileset>

        <pathelement location="${catalina.home}/shared/classes"/>
        <fileset dir="${catalina.home}/shared/lib">
                <include name="*.jar"/>
        </fileset>

        </path>


</target>


CALLING:

<target name="tomcat" if="system.CATALINA_HOME">

        <echo message="CATALINA_HOME is: ${system.CATALINA_HOME}"/>
        <antcall target="clean"/>
        <antcall target="init"/>
        <antcall target="classpath-tomcat"/>
        <antcall target="compile-newserver"/>
        <antcall target="dist-tomcat"/>
        <antcall target="deploy-tomcat"/>

</target>


JAVAC:

<target name="compile-newserver">

        <echo message="SOURCE DIRECTORY: ${src.home}"/>
        <echo message="TARGET DIRECTORY: ${build.home}"/>

        <!-- Compile Java classes as necessary -->
        <mkdir dir="${build.home}/WEB-INF/classes"/>
        <javac classpathref="compile.classpath"
                srcdir="${src.home}"
                destdir="${build.home}/WEB-INF/classes"
                debug="${compile.debug}"
                deprecation="${compile.deprecation}"
                optimize="${compile.optimize}"
                excludes="java/sandbox/**">
                <classpath refid="compile.classpath"/>
        </javac>

        <!-- Copy application resources -->
        <copy  todir="${build.home}/WEB-INF/classes">
                <fileset dir="${src.home}" excludes="**/*.java"/>
        </copy>
        <echo message="Completed."/>

</target>

ERROR:

BUILD FAILED
file:/home/barry/workarea/src/server/build.xml:245: Reference 
compile.classpath not found.

Quoting Antoine Lévy-Lambert <an...@antbuild.com>:

> barry@goodconsultants.com wrote:
> 
> >All,
> >
> >In one single build.xml, how can I select different set of classpaths? for 
> >Tomcat and for other apps?
> >
> >I try to do the followings:
> >
> ><target name="tomcat" if="system.CATALINA_HOME">
> >
> >        <antcall target="clean"/>
> >        <antcall target="init-tomcat"/>
> >        <antcall target="compile-newserver"/>
> >        <antcall target="dist-tomcat"/>
> >        <antcall target="deploy-tomcat"/>
> >
> ></target>
> >
> >In the init-tomcat target, I have the followings:
> >
> ><target name="init-tomcat">
> >
> >        <echo message="CATALINA_HOME is ${system.CATALINA_HOME}"/>
> >
> >        <path id="compile.classpath">
> >
> >        <pathelement location="${catalina.home}/common/classes"/>
> >        <fileset dir="${catalina.home}/common/endorsed">
> >                <include name="*.jar"/>
> >        </fileset>
> >        <fileset dir="${catalina.home}/common/lib">
> >                <include name="*.jar"/>
> >        </fileset>
> >
> >        <pathelement location="${catalina.home}/shared/classes"/>
> >        <fileset dir="${catalina.home}/shared/lib">
> >                <include name="*.jar"/>
> >        </fileset>
> >
> >        </path>
> >
> ></target>
> >
> >Unfortunately, it does not work setting classpath like this... Any advice? 
> >
> >Thanks
> >
> >Barry
> >
> >
> >  
> >
> ur target above init-tomcat creates a piece of data with id 
> "compile.classpath". But then you need to reference your classpath, for 
> instance in <javac>
> 
> <javac classpathref="compile.classpath" ...>
> <!-- other nested elements -->
> </javac>
> 
> will work.
> 
> Antoine
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> For additional commands, e-mail: user-help@ant.apache.org
> 
> 





---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Re: How can I select different classpath for building different apps?

Posted by Antoine Lévy-Lambert <an...@antbuild.com>.
barry@goodconsultants.com wrote:

>All,
>
>In one single build.xml, how can I select different set of classpaths? for 
>Tomcat and for other apps?
>
>I try to do the followings:
>
><target name="tomcat" if="system.CATALINA_HOME">
>
>        <antcall target="clean"/>
>        <antcall target="init-tomcat"/>
>        <antcall target="compile-newserver"/>
>        <antcall target="dist-tomcat"/>
>        <antcall target="deploy-tomcat"/>
>
></target>
>
>In the init-tomcat target, I have the followings:
>
><target name="init-tomcat">
>
>        <echo message="CATALINA_HOME is ${system.CATALINA_HOME}"/>
>
>        <path id="compile.classpath">
>
>        <pathelement location="${catalina.home}/common/classes"/>
>        <fileset dir="${catalina.home}/common/endorsed">
>                <include name="*.jar"/>
>        </fileset>
>        <fileset dir="${catalina.home}/common/lib">
>                <include name="*.jar"/>
>        </fileset>
>
>        <pathelement location="${catalina.home}/shared/classes"/>
>        <fileset dir="${catalina.home}/shared/lib">
>                <include name="*.jar"/>
>        </fileset>
>
>        </path>
>
></target>
>
>Unfortunately, it does not work setting classpath like this... Any advice? 
>
>Thanks
>
>Barry
>
>
>  
>
ur target above init-tomcat creates a piece of data with id 
"compile.classpath". But then you need to reference your classpath, for 
instance in <javac>

<javac classpathref="compile.classpath" ...>
<!-- other nested elements -->
</javac>

will work.

Antoine

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org