Próbuję przesłać plik przy użyciu zadania Ant. Jeśli używam Ant bezpośrednio plik zostanie przesłany, ale jeśli ja nazywam ant zadania poprzez Maven (używając maven-antrun-plugin
) pojawia się następujący błąd:Prześlij plik za pomocą zadania FTP Ant w Maven
mrówkę BuildException nie wystąpił: Wystąpił następujący błąd podczas wykonywania tej linii:
/home/me/proj/build.xml:15: Problem: failed to create task or type ftp
Cause: the class org.apache.tools.ant.taskdefs.optional.net.FTP was not found.
This looks like one of Ant's optional components.
Action: Check that the appropriate optional JAR exists in
-ANT_HOME/lib
ant-commonsnet.jar jest oczywiście dostępny do Ant:
$ ls $ANT_HOME/lib | grep ant-commons-net
ant-commons-net.jar
Czy Ant ścieżka klasy zdefiniowane oddzielnie dla maven-antrun-plugin, albo ja czegoś brakuje?
To jest właściwe podejście. Jedyne rzeczy, które proponuję robić inaczej to: 1) określenie 'ant' groupId zamiast' org.apache.ant', ponieważ to jest to, co wewnętrzne wtyczki Maven'a odwołują. –
Jeśli jest to projekt wielomodułowy, powinieneś rozważyć dodanie zależności do sekcji pluginManagement w głównym projekcie pom. Uniemożliwi to innym odniesieniom do programu antirun w twoim projekcie, odzwyczajając twoje zależności. –
@Tim Rzeczywiście, [od wersji 1.7.0] (http://mvnrepository.com/artifact/org.apache.ant/ant-commons-net) 'ant-commons-net',' groupId' to 'org.apache.ant', ale powyższy kod jest poprawny dla wersji 1.6.5. Innymi słowy, dostosuj go, jeśli chcesz użyć nowszej wersji. I masz rację co do sekcji 'pluginManagement'.Zaktualizuję moją odpowiedź, aby wspomnieć o tym ... jutro :) Dzięki za oba komentarze! –