Deploying with SCP
Another deployment task, available since Ant 1.6, is the
scp task, which copies a file or
FileSet to or from a remote machine running the SSH daemon. This task is
an optional one, and you need jsch.jar in the Ant
lib directory to use it (you can get
jsch.jar at http://www.jcraft.com/jsch/index.html).
This task is handy for deployment. For example, here's how
to deploy a single file to a remote host (any host you connect to must
be listed in your knownhosts file unless you
specifically set the trust attribute
to yes or true):
<scp file="Project.jar"
todir="user:password@antmegacorp.com:/home/steven/cgi-bin"/>You can use the password attribute explicitly to set the
password:
<scp file="Project.jar"
todir="user@antmegacorp.com:/home/steven/cgi-bin""
password="password"/>Here's how to copy a remote file to a local machine:
<scp file="user:password@antmegacorp.com:/home/steven/cgi-bin/Project.jar"
todir="${archive}"/>Here's how to copy a set of files using a fileset:
<scp todir="user:password@antmegacorp.com:/home/steven/source">
<fileset dir="${src}">
<include name="**/*.java"/>
</fileset>
</scp> Example 8-3
gives a complete example build file using the scp task for deployment. (It uses the remote
machine's IP address instead of naming the remote server.)
Example 8-3. Using scp (ch08/scp/build.xml)
<?xml version="1.0" ?> <project default="main"> <property name="message" value="Deploying the .jar file." /> <property name="src" location="source" /> <property name="output" ...