Re: Converting to New Build System in WOLips 3.4.x

From: Chuck Hill (chil..lobal-village.net)
Date: Tue Jan 27 2009 - 23:24:02 EST

  • Next message: Henrique Prange: "Re: WOLips can't load prototypes from jar anymore"

    On Jan 27, 2009, at 4:54 PM, Michael Hast wrote:

    > Cool, thanks Chuck. Having a build.xml file with 3 lines is better
    > than the full build.xml file that gets generated. I agree.
    >
    > WOOOHOOO !!! My build system works now.

    :-)

    > And just for completeness. My compile task looks now something like
    > this:
    >
    > <target name="generic.project.compile"
    > depends="generic.project.environment,generic.project.prepare">
    > <!--
    > - wopath reads in .classpath file of Eclipse project to get
    > depended frameworks
    > - wopath assumes that .classpath file is in ant's project basedir
    > => copy .classpath into ${dssAntTools.root} (which is ant's
    > project basedir)
    > but first need to delete .classpath file otherwise copy will not
    > work
    > -->
    > <delete file="${dssAntTools.root}/.classpath" failonerror="false" />
    > <copy file="${project.dir}/.classpath" toFile="$
    > {dssAntTools.root}/.classpath" />

    You might be able to get rid of this by doing something like this:

         <!-- Build all products -->
         <target name="build" depends="setup">
             <antcall target="build.all" inheritAll="true">
                 <param name="target" value="full.build"/>
             </antcall>
         </target>

    ....

         <!-- distributes out build target -->
         <target name="build.all">
             <ant dir="Project1" target="${target}" inheritAll="true"/>
             <ant dir="Project2" target="${target}" inheritAll="true"/>
             <ant dir="Project3" target="${target}" inheritAll="true"/>
             <ant dir="Project4" target="${target}" inheritAll="true"/>
             <ant dir="Project5" target="${target}" inheritAll="true"/>
             <ant dir="Project6" target="${target}" inheritAll="true"/>
         </target>

    > <!-- define root for <frameworks root="External" eclipse="true" />
    > below -->
    > <property name="wo.external.frameworks" value="$
    > {project.build.root.dstroot}"/>

    Or that can go in the wolips.properties file

    Chuck

    >
    > <wopath id="project.classpath">
    > <path>
    > <fileset dir="${project.dir}/Libraries">
    > <include name="**/*.jar" />
    > </fileset>
    > </path>
    > <frameworks root="External" eclipse="true" />
    > <frameworks root="System" eclipse="true" />
    > </wopath>
    >
    > <wocompile srcdir="${project.dir}/${sources.dir}" destdir="$
    > {build.classes}" debug="on" optimize="off" deprecation="on" source="$
    > {compiler.source}" target="${compiler.target}">
    > <classpath refid="project.classpath" />
    > </wocompile>
    > </target>
    >
    > I am building into ~/Roots and want to link against those build
    > frameworks. To do that I have to use <frameworks root="External"
    > eclipse="true" />. However the external root is null and needs to be
    > defined using <property name="wo.external.frameworks" value="..." />.
    >
    > Michael.
    >
    > Chuck Hill wrote:
    >> On Jan 27, 2009, at 10:17 AM, Michael Hast wrote:
    >>> I see. Thanks. Running it with -verbose I get:
    >>> Cause by: You specified eclipse="true", but /Users/mhast/.../
    >>> DSSAntTools/.classpath does not exist.
    >> That sounds like you have included this project as a WO Library,
    >> but it is not a WO Library.
    >>> Make sense. DSSAntTools does not have a .classpath file. We have
    >>> one folder (DSSAntTools) that contains the build files
    >>> (build.xml). None of our applications nor frameworks contain a
    >>> build.xml file. Our build process goes as follows:
    >>> 1. Start build in DSSAntTools
    >>> 2. Checkout all frameworks and applications into ~/Roots/SRCROOT
    >>> 3. Build all frameworks and applications
    >>>
    >>> Is there a way to "read-in" the .classpath file when I try to
    >>> build a framework or application?
    >> What I do is to have a build.xml in each project that simply
    >> references the common build file(s):
    >> <project name="FooApp" default="build" basedir=".">
    >> <import file="../Ant/common.xml"/>
    >> </project>
    >> Three lines is longer than none, but it makes building very easy.
    >> Chuck
    >>>
    >>>
    >>> Michael.
    >>>
    >>> Mike Schrag wrote:
    >>>>> generic.xml:52 (line of wocompile)
    >>>>> Failed to process eclipse frameworks.
    >>>> ant is worthless .. run with -verbose to have any chance at
    >>>> knowing why it failed.
    >>>> ms
    >>>
    >>> --
    >>> Tel: (520) 572-9410
    >>> Desert Sky Software: www.desertsky.com
    >>> Specializing in the Development and Hosting of
    >>> e-Business Applications.
    >>>
    >
    > --
    > Tel: (520) 572-9410
    > Desert Sky Software: www.desertsky.com
    > Specializing in the Development and Hosting of
    > e-Business Applications.
    >

    -- 
    Chuck Hill             Senior Consultant / VP Development
    

    Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/products/practical_webobjects



    This archive was generated by hypermail 2.0.0 : Tue Jan 27 2009 - 23:24:55 EST