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のオプションコンポーネントの1つのように見えます。アクション:適切なオプションのJARが-ANT_HOME \ lib-IDEAnt構成ダイアログに存在することを確認してください

慌てる必要はありません。これは一般的な問題です。最も一般的な原因は、JARの欠落です。

これはバグではありません。構成の問題です

Mavenがそれらの依存関係をダウンロードできなかった、または単にそれらを無視した可能性はありますか?

4

3 に答える 3

1

問題は、Maven(2.2.1)が依存関係をダウンロードしなかったことです。Mavenをバージョン3にアップグレードした後、私はそれを知りました。何らかの理由で、新しいバージョンはプラグインの依存関係をダウンロードし、奇跡的に機能し始めました。

問題は古いバージョンのMavenの設定にあるのではないかと疑っています-pluginRepository構成されていませんでした。

于 2011-01-18T17:19:07.847 に答える
0

maven-antrun-pluginのバグエントリがあり、これがMaven-2で発生している理由を説明できます。また、回避策についても説明しています。

マルチモジュールビルドでは、maven-antrun-pluginを構成する複数のpomがある場合、first(?)が勝つように見えるため、ビルドチェーンの後半にあるものは、以前のpomのantrun構成を再利用するため、内容が失われます。それは違います...

私の問題の場合、Maven-2での回避策の代わりに、問題が修正されたように見えるMaven-3を使用することを選択しました。これには、ビルドの追加の利点もあり、スピードアップすることもできました。以前の10分ではなく6分かかりました。ただし、Maven-3が使用できない場合は、回避策を試してみます...

于 2011-02-02T10:08:42.827 に答える
0

Mavenがjarをダウンロードした可能性がありますが、antのクラスパスにはありません。目的がMavenを使用してアーティファクトをデプロイすることである場合は、おそらくMavenDeployPluginを使用する必要があります。あなたがしていることは、回り道のようです。

于 2011-01-14T02:32:57.920 に答える