Tôi đã theo dõi một số mã nguồn ví dụ nhưng tôi gặp lỗi khi thực hiện tác vụ ftp. Dưới đây là file build.xml của tôi:kiến: tác vụ ftp không thành công do NoClassDefFoundError
?xml version="1.0"?>
<project name="HelloWorld" default="deploy">
<target name="init">
<mkdir dir="build/classes" />
<mkdir dir="dist" />
</target>
<target name="compile" depends="init">
<javac includeantruntime="false"
srcdir="src"
destdir="build/classes"/>
</target>
<target name="doc" depends="init">
<javadoc destdir="build/classes"
sourcepath="src"
packagenames="org.*" />
</target>
<target name="package" depends="compile,doc">
<jar destfile="dist/project.jar"
basedir="build/classes" />
</target>
<taskdef name="ftp" classname="org.apache.tools.ant.taskdefs.optional.net.FTP">
<classpath>
<pathelement location="/usr/local/ant/lib/ant-commons-net.jar"/>
</classpath>
</taskdef>
<target name="deploy" depends="package">
<ftp classname="org.apache.tools.ant.taskdefs.optional.net.FTP"
server="${server.name}"
userid="${ftp.username}"
password="${ftp.password}">
<fileset dir="dist" />
</ftp>
</target>
</project>
Dưới đây là một số cài đặt:
$ ant -version
Apache Ant(TM) version 1.9.0 compiled on March 5 2013
$ echo $ANT_HOME
/usr/local/ant
$ ls -l $ANT_HOME
lrwxrwxrwx 1 root root 17 May 20 11:54 /usr/local/ant -> apache-ant-1.9.0/
Dưới đây là sản phẩm có lỗi Tôi nhận được. Tôi nghĩ rằng kiến xây dựng các tập tin được coi là di động. Vấn đề ở đây là gì? Bằng cách nào đó tác vụ FTP "Ant" tìm kiếm tên lớp học đến từ một lớp không được phân phối với kiến. Tôi đã thử chỉ nhiệm vụ cho lớp được phân phối với kiến nhưng kiến vẫn không có vẻ như tìm lớp tương ứng với tác vụ ftp mà nó đang tìm kiếm.
Buildfile: /home/johndoe/ex/build.xml
init:
compile:
doc:
[javadoc] Generating Javadoc
[javadoc] Javadoc execution
[javadoc] Loading source files for package org.example.helloworld...
[javadoc] Constructing Javadoc information...
[javadoc] Standard Doclet version 1.7.0_21
[javadoc] Building tree for all the packages and classes...
[javadoc] Building index for all the packages and classes...
[javadoc] Building index for all classes...
package:
[jar] Building jar: /home/johndoe/ex/dist/project.jar
deploy:
BUILD FAILED
/home/johndoe/ex/build.xml:30: Could not create type ftp due to java.lang.NoClassDefFoundError: org/apache/commons/net/ftp/FTPClientConfig
at org.apache.tools.ant.taskdefs.optional.net.FTP$LanguageCode.getValidLanguageCodes(FTP.java:2698)
at org.apache.tools.ant.taskdefs.optional.net.FTP$LanguageCode.<clinit>(FTP.java:2694)
at org.apache.tools.ant.taskdefs.optional.net.FTP.<init>(FTP.java:137)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at org.apache.tools.ant.AntTypeDefinition.innerCreateAndSet(AntTypeDefinition.java:328)
at org.apache.tools.ant.AntTypeDefinition.createAndSet(AntTypeDefinition.java:274)
at org.apache.tools.ant.AntTypeDefinition.icreate(AntTypeDefinition.java:219)
at org.apache.tools.ant.AntTypeDefinition.create(AntTypeDefinition.java:206)
at org.apache.tools.ant.ComponentHelper.createComponent(ComponentHelper.java:285)
at org.apache.tools.ant.ComponentHelper.createComponent(ComponentHelper.java:263)
at org.apache.tools.ant.UnknownElement.makeObject(UnknownElement.java:417)
at org.apache.tools.ant.UnknownElement.maybeConfigure(UnknownElement.java:163)
at org.apache.tools.ant.Task.perform(Task.java:347)
at org.apache.tools.ant.Target.execute(Target.java:435)
at org.apache.tools.ant.Target.performTasks(Target.java:456)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
at org.apache.tools.ant.Project.executeTarget(Project.java:1364)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1248)
at org.apache.tools.ant.Main.runBuild(Main.java:851)
at org.apache.tools.ant.Main.startAnt(Main.java:235)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.net.ftp.FTPClientConfig
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 26 more
Total time: 2 seconds
Lý tưởng nhất tôi không nên tải xuống các lớp khác để kiến thức hoạt động. Nó nên làm việc ra khỏi hộp, nếu không nó không phải là di động. Ngoài ra, nếu ai đó có thể giúp tôi tải xuống các lớp học bị thiếu, sẽ là trợ giúp tuyệt vời.
Cảm ơn.
Điều này làm việc cho tôi, cảm ơn! – GreenhouseVeg