Hi all,

I've written an add-on for Ant that allows for remote builds. It consists of
an RMI based server application and a handful of custom Ant tasks on the
client side. My motivation for this was to allow C/C++ code to be built on
remote machines for multiple architectures from the comfort of the
developer's Eclipse IDE on Windows. I tried Rant, but found it too limiting,
so I've done my own version, complete with file transfers and synchronous
logging (which took some work to make it all serialize/deserialize properly
across RMI!)

Now that I've got it working, the question is, what do I do with it? Is
there even any interest out there for such a thing? Who should I talk to at
apache? Should I just throw it up on my own web page?

Here's how it works from the user's perspective. Please let me know how to
proceed. By the way, I have a new set of Ant tasks for Eclipse that allow
you to use the .classpath file from inside *or* outside the IDE. I needed
this to allow our continuous integration server to use the same build
process as the developer's IDE. Any interest there?

Cheers,

Robert

---------------------------------------

Successful build log from client:


Buildfile: C:\Program Files\eclipse\workspace\RemoteAnt2\build.xml

c-all:
        [echo] Begining remote build
[createSession] Created remote session: clare:192.168.1.97:20042872453
    [putFiles] Transfering 1 files to clare
    [putFiles] Transfering 3 files to clare
 [remoteBuild] Building on clare using SolarisCBuild.xml

clare.test:
  [clare.echo] Building C code for Sun Sparc Solaris
    [clare.cc] 2 total files to be compiled.
    [clare.cc] Starting link

c-all:
     [getFile] Recieving ctjava from clare
     [getFile] Copied ctjava from clare to C:\Program
Files\eclipse\workspace\RemoteAnt2/Configuration/bin/ctjava
[closeSession] Session clare:192.168.1.97:20042872453 closed.
BUILD SUCCESSFUL
Total time: 11 seconds


-----------------------------------------


Failed build log from client:

Buildfile: C:\Program Files\eclipse\workspace\RemoteAnt2\build.xml

c-all:
        [echo] Begining remote build
[createSession] Created remote session: clare:192.168.1.97:2004287186
    [putFiles] Transfering 1 files to clare
    [putFiles] Transfering 3 files to clare
 [remoteBuild] Building on clare using SolarisCBuild.xml

clare.test:
  [clare.echo] Building C code for Sun Sparc Solaris
    [clare.cc] 2 total files to be compiled.
BUILD FAILED: /tmp/builds/192.168.1.97/2004287186/SolarisCBuild.xml:6: Could
not launch gcc: java.io.IOException: gcc: not found
BUILD FAILED: file:C:/Program
Files/eclipse/workspace/RemoteAnt2/build.xml:89: Build failed on host clare.
Total time: 8 seconds


-----------------------------------------


Failed build log from server:


0    [main] INFO  com.rjmpsmith.ant.RemoteAntServer  - Starting server on
host clare port 2020.
1641 [main] INFO  com.rjmpsmith.ant.RemoteAntServer  - Bound
rmi://clare:2020/RemoteBuildServices
10439 [RMI TCP Connection(2)-192.168.1.97] INFO
com.rjmpsmith.ant.RemoteBuildServices  - Created remote session:
clare:192.168.1.97:200428713
10606 [RMI TCP Connection(2)-192.168.1.97] DEBUG
com.rjmpsmith.ant.RemoteBuildServices  - Recieving
/tmp/builds/192.168.1.97/200428713/SolarisCBuild.xml
10840 [RMI TCP Connection(2)-192.168.1.97] DEBUG
com.rjmpsmith.ant.RemoteBuildServices  - Recieving
/tmp/builds/192.168.1.97/200428713/c/ctjava/src/ctext.c
10858 [RMI TCP Connection(2)-192.168.1.97] DEBUG
com.rjmpsmith.ant.RemoteBuildServices  - Recieving
/tmp/builds/192.168.1.97/200428713/c/ctjava/src/ctext.h
10876 [RMI TCP Connection(2)-192.168.1.97] DEBUG
com.rjmpsmith.ant.RemoteBuildServices  - Recieving
/tmp/builds/192.168.1.97/200428713/c/ctjava/src/ctjexec.c
10903 [RMI TCP Connection(2)-192.168.1.97] INFO
com.rjmpsmith.ant.RemoteBuildServices  - Beggining Ant build for session
clare:192.168.1.97:200428713 using SolarisCBuild.xml
17602 [RMI TCP Connection(2)-192.168.1.97] ERROR
com.rjmpsmith.ant.RemoteBuildServices  - Build failed for session
clare:192.168.1.97:200428713
/tmp/builds/192.168.1.97/200428713/SolarisCBuild.xml:6: Could not launch
gcc: java.io.IOException: gcc: not found
        at net.sf.antcontrib.cpptasks.CUtil.runCommand(CUtil.java:476)
        at
net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler.runCommand(CommandLi
neCompiler.java:269)
        at
net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler.compile(CommandLineC
ompiler.java:226)

-----------------------------------------

Ant task usage:


    <!--========================================-->
    <!--=                 c-all                =-->
    <!--========================================-->

    <target name="c-all"
            description="Build C code for Sun Solaris">
        <property name="remotebuild.c.solaris.host" value="clare"/>
        <property name="remotebuild.c.solaris.port" value="2020"/>

        <taskdef resource="remoteant.taskdefs" classpath="classes"/>

        <echo message="Begining remote build"/>

        <createSession host="${remotebuild.c.solaris.host}" 
                       port="${remotebuild.c.solaris.port}" 
                       property="session.c.solaris"/>

        <putFiles session="${session.c.solaris}">
            <fileset dir="cfg">
                    <include name="SolarisCBuild.xml"/>
            </fileset>
            <fileset dir="${basedir}"
                     includes="**/c/**"
                     excludes="**/Makefile"/>
        </putFiles>
                    
        <remoteBuild session="${session.c.solaris}" 
                     buildfile="SolarisCBuild.xml"
                     targets="test"/>
                
        <getFile session="${session.c.solaris}" 
                 remoteFile="ctjava"
                 localFile="${basedir}/Configuration/bin/ctjava"/>
                
        <closeSession session="${session.c.solaris}"/>
    </target>




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to