0

我创建了这个配置文件,用于通过 SCP 在服务器上部署工件。我知道 Ant 的 scp 任务是可选的,因此我添加了依赖项。

<profiles>
        <profile>
            <id>remote-deploy</id>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>scp</id>
                                <phase>install</phase>
                                <configuration>
                                    <tasks>
                                        <scp .../>
                                        <sshexec .../>
                                    </tasks>
                                </configuration>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                            </execution>
                        </executions>
                        <dependencies>
                            <dependency>
                                <groupId>org.apache.ant</groupId>
                                <artifactId>ant-jsch</artifactId>
                                <version>1.7.1</version>
                            </dependency>
                            <dependency>
                                <groupId>com.jcraft</groupId>
                                <artifactId>jsch</artifactId>
                                <version>0.1.42</version>
                            </dependency>
                        </dependencies>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

但是,当我运行配置文件时,我最终得到

发生 Ant BuildException:问题:无法创建任务或键入 scp 原因:未找到类 org.apache.tools.ant.taskdefs.optional.ssh.Scp。这看起来像是 Ant 的可选组件之一。操作:检查 -ANT_HOME\lib -IDE Ant 配置对话框中是否存在适当的可选 JAR

不要惊慌,这是一个普遍的问题。最常见的原因是缺少 JAR。

这不是错误;这是一个配置问题

maven 是否有可能无法下载这些依赖项,或者它只是忽略了它们?

4

3 回答 3

1

问题是 Maven (2.2.1) 没有下载依赖项。我将Maven升级到版本3后发现。出于某种原因,新版本下载了插件依赖项,并且奇迹般地开始工作。

我怀疑问题出在旧版本 Maven 的设置中 -pluginRepository未配置。

于 2011-01-18T17:19:07.847 回答
0

maven 可能已经下载了 jar,但它不在 ant 的类路径中。如果目标是使用 maven 部署工件,您可能应该使用Maven Deploy Plugin。你正在做的似乎是一个迂回的方式。

于 2011-01-14T02:32:57.920 回答
0

有一个 maven-antrun-plugin错误条目,可以解释为什么在 Maven-2 中会发生这种情况,它们还描述了解决方法

在多模块构建中,如果有多个 pom 配置 maven-antrun-plugin,第一个(?)似乎赢了,因此构建链中后面的那些会重用早期 pom 中的 antrun 配置,从而错过了一些东西那是不同的......

在我的问题案例中,我选择使用Maven-3,该问题似乎已解决,而不是使用 Maven-2 的解决方法。这具有构建速度的额外优势 - 现在需要 6 分钟而不是之前的 10 分钟。但是,如果您无法使用 Maven-3,我会尝试解决方法...

于 2011-02-02T10:08:42.827 回答