【问题标题】:Maven plugin dependencies are ignoredMaven 插件依赖被忽略
【发布时间】:2011-01-13 22:41:56
【问题描述】:

我创建了这个配置文件,用于通过 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 的可选组件之一。行动:检查 适当的可选 JAR 存在于 -ANT_HOME\lib -IDE Ant 配置对话框

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

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

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

【问题讨论】:

    标签: ssh dependencies maven maven-plugin scp


    【解决方案1】:

    问题是 Maven (2.2.1) 没有下载依赖项。 Maven升级到版本3后发现,不知为何,新版本下载了插件依赖,奇迹般地开始工作了。

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • Maven 部署插件不是一个选项,因为我没有部署到远程存储库,而是远程服务器 - 我仍然需要执行一些特定于服务器的 unix 命令。
      【解决方案3】:

      有一个 maven-antrun-plugin bug entry,可以解释为什么在 Maven-2 中会发生这种情况,他们还描述了 workarounds

      在多模块构建中,如果有多个 pom 配置 maven-antrun-plugin,第一个(?)似乎获胜,因此构建链中后面的那些重用早期 pom 中的 antrun 配置,因此丢失尝试不同的东西...

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-07
        • 1970-01-01
        • 2015-04-03
        • 2022-08-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多