Tôi đang cố tải lên tệp bằng tác vụ Ant. Nếu tôi sử dụng Ant trực tiếp thì tệp được tải lên, nhưng nếu tôi gọi nhiệm vụ kiến qua Maven (sử dụng số maven-antrun-plugin
) tôi nhận được lỗi sau:Tải tệp lên qua tác vụ Ant FTP trong Maven
10 An Ant BuildException đã xảy ra: Đã xảy ra lỗi sau khi thực hiện dòng này:
/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 rõ ràng là có sẵn cho Ant:
$ ls $ANT_HOME/lib | grep ant-commons-net
ant-commons-net.jar
là classpath Ant xác định riêng cho maven-antrun-plugin, hoặc tôi đang thiếu cái gì?
Đây là phương pháp phù hợp. Những điều duy nhất tôi sẽ đề nghị làm khác là: 1) chỉ định 'ant' groupId thay vì' org.apache.ant' vì đây là những gì Maven plugins tham chiếu nội bộ. –
Nếu đây là một dự án đa mô-đun, bạn cũng nên xem xét việc thêm phụ thuộc vào phần pluginManagement trong dự án gốc pom. Điều này sẽ ngăn chặn các tham chiếu khác để antrun trong dự án của bạn từ clobbering phụ thuộc của bạn. –
@Tim Thật vậy, [kể từ phiên bản 1.7.0] (http://mvnrepository.com/artifact/org.apache.ant/ant-commons-net) của 'ant-commons-net',' groupId' là 'org.apache.ant' nhưng cái trên là đúng cho phiên bản 1.6.5. Nói cách khác, hãy điều chỉnh nó nếu bạn muốn sử dụng phiên bản mới hơn. Và tất nhiên bạn hoàn toàn đúng về phần 'pluginManagement'.Tôi sẽ cập nhật câu trả lời của tôi để đề cập đến rằng ... ngày mai :) Cảm ơn cho cả hai ý kiến! –