Asle Pedersen wrote:
Ok, in that case alt.3 is not very attractive afterall. I don't know
if it is just me but I prefer do embed this type of behaviour in the
build.xml and project itself.
Indeed,
I would argue that the whole idea of spitting the optional ant tasks
into a relatively
large number of jar files to work-around the classloading probem was not
a good idea.
To make use of it, one has to modify the ant distribution.
Peter
I have had similar problems with system environment variables in
particular charset encodings which need to be set outside of the
build.xml. Instead of just executing the build.xml this causes me to
have a shellscript to set the environment variables and execute the
build.xml
What I could do in this particular case is provide an install
mechanism (a target in the build.xml perhaps) for the ftp-task which
copies the commons-net-1.1.0.jar from the projects lib directory into
$HOME\.ant\lib. That way it would be fairly straightforward to use.
/A
On 7/12/05, Peter Reilly <[EMAIL PROTECTED]> wrote:
Asle Pedersen wrote:
I prefer alt.3 and try using taskdefs before without success. I did
try it again now also not successfully. Could you please supply me
with a complete working example?
This is how my (non-working) build.xml looks like now:
(both .jar files are placed in the lib directory under the basedir)
<project name="imweb" default="upload" basedir=".">
<taskdef name="ftp"
classname="org.apache.tools.ant.taskdefs.optional.net.FTP">
<classpath>
<pathelement location="/lib/ant-commons-net.jar"/>
<pathelement location="/lib/commons-net-1.1.0.jar"/>
</classpath>
</taskdef>
<target name="upload">
<ftp server="..." userid="... password="..." depends="yes"
verbose="yes">
<fileset dir="en" />
</ftp>
</target>
</project>
Is it really necessary to place ant-commons-net in the classpath since
it is already under the ant/lib path? btw! I am using ant.1.6.5
See the FAQ on classloading.
Option number 3, as Ivan says, *requires" moving ant-commons-net.jar
out of the ant lib directory to some place else, otherwise the
ant-commons-net.jar gets
loaded at ant startup time (sort of, it is in the startup classpath), and
at this time (with this classpath) it cannot see the commons net classes
so the task will not start.
Peter
Regards,
Asle
On 7/12/05, Ivan Ivanov <[EMAIL PROTECTED]> wrote:
Asle,
You have several other alternatives to keep your ant
distribution clean of external libs:
1) Put commons-net-1.1.0.jar in $HOME\.ant\lib (my
favourite way)
2) Place it an arbitrary directory say
/path/to/thirdparty/jars and use -lib option of ant
launching script.
3) (Requires more coding and its benefits are
doubtful). Move ant-commons-net.jar from $ANT_HOME/lib
to some other folder and in your build script
<taskdef> ftp task like this:
<taskdef name="ftp" classname="...">
<classpath>
<pathelement
location="/path/to/ant-commons-net.jar"/>
<pathelement location="/path/to/commons-net.jar"/>
</classpath>
</taskdef>
Regards
Ivan
--- Asle Pedersen <[EMAIL PROTECTED]> wrote:
Is it possible to "embed" the ant ftp task in a
project. I would like
to just depend on a standard ant-installation to use
the ftp task and
have the commons-net-1.1.0.jar in my project instead
of under /ant/lib
which is suggested by the documentation. I have
tried different
methods to do this but none have worked so far. Any
suggestions?
Regards,
Asle
---------------------------------------------------------------------
To unsubscribe, e-mail:
[EMAIL PROTECTED]
For additional commands, e-mail:
[EMAIL PROTECTED]
____________________________________________________
Sell on Yahoo! Auctions – no fees. Bid on great items.
http://auctions.yahoo.com/
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]