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]