Ssh Maven插件依赖项被忽略
我创建了这个概要文件,用于通过SCP在服务器上部署工件。我知道Ant的scp任务是可选的,因此我添加了依赖项Ssh Maven插件依赖项被忽略,ssh,dependencies,maven,maven-plugin,scp,Ssh,Dependencies,Maven,Maven Plugin,Scp,我创建了这个概要文件,用于通过SCP在服务器上部署工件。我知道Ant的scp任务是可选的,因此我添加了依赖项 <profiles> <profile> <id>remote-deploy</id> <build> <plugins> <plugin>
<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>
远程部署
maven antrun插件
scp
安装
跑
org.apache.ant
ant jsch
1.7.1
com.jcraft
jsch
0.1.42
然而,当我运行配置文件时,我最终得到
发生了Ant BuildException:
问题:无法创建任务或类型
scp原因:班级
org.apache.tools.ant.taskdefs.optional.ssh.Scp
找不到。
这看起来像Ant的可选组件之一。行动:检查
选择合适的可选JAR
存在于
-蚂蚁之家
-IDE Ant配置对话框
不要惊慌,这是一个常见的问题
问题最常见的原因是
丢失的罐子
这不是一个错误;这是一个
配置问题
是否可能maven无法下载这些依赖项,或者只是忽略了它们?maven可能下载了JAR,但它不在ant的类路径中。如果目标是使用maven部署工件,那么您可能应该使用。您所做的似乎是一种迂回的方式。问题在于Maven(2.2.1)没有下载依赖项。我在将Maven升级到版本3后发现了这一点。出于某种原因,新版本下载了插件依赖项,奇迹般地开始工作
我怀疑问题出在旧版本Maven的设置中-
pluginRepository
没有配置。有一个Maven antrun插件,可以解释为什么Maven-2会出现这种情况,他们还描述了
在多模块构建中,如果有多个POM配置maven antrun插件,那么第一个(?)似乎会赢,因此构建链中后面的那些会重用早期POM中的antrun配置,从而错过不同的东西
在我的问题案例中,我选择使用Maven-3,问题似乎已经解决,而不是使用Maven-2。这还有一个额外的优点,就是构建速度也加快了——现在需要6分钟,而不是以前的10分钟。
但是,如果您无法使用Maven-3,我会尝试解决方法…Maven部署插件不是一个选项,因为我没有部署到远程存储库,而是远程服务器-我仍然需要执行一些特定于服务器的unix命令。