1

助けをお願いしたいと思います。ユーザー名に@記号が含まれている場合、どうすればscpタスクを使用できますか?

いろいろな方法でキャラクターを脱出させようとしましたが、うまくいきません。次の例では、私のユーザー名はuser@host.comです。

<scp file="test.txt" todir="&quot;user@host.com&quot;:password@ftp.host.com:/" trust="true" sftp="true"/>
<scp file="test.txt" todir="'user@host.com':password@ftp.host.com:/" trust="true" sftp="true"/>
<scp file="test.txt" todir="user\@host.com:password@ftp.host.com:/" trust="true" sftp="true"/>

ただし、出力は常に同じです。

neither password nor keyfile for user "user has been given.  Can't authenticate. 

とにかく、タスクにこの文字列を正しく解析させる方法はありますか?どうもありがとうございます。

ちなみに、理由はわかりませんが、現在のプロバイダーでは、ホスト名を追加せずにユーザー名を作成することはできません。

4

2 に答える 2

2

build.xmlでSCPタスクを使用すると、その形式は次のようになります。

<scp file="package/ROOT.war" todir="user@example.com:~" trust="true" password="${password}"/>

関数(行370)でSCPタスクのソースを見るとparseUri(String uri)、タスクは@記号の付いたユーザー名をサポートできるようです。このコメントに見られるように、制限は、パスに:または@が含まれているように見えます。

// user:password@host:/path notation
// everything upto the last @ before the last : is considered
// password. (so if the path contains an @ and a : it will not work)

コードはこのコメントをサポートしていないようです( martinclaytonが指摘しているように )。また、パスワードまたはキーファイルが欠落している場合にトリガーされる、参照しているエラーを確認することもできます。表記のパスワードuser:password@host:/pathと@付きのユーザー名の組み合わせが問題を引き起こしているのではないでしょうか。

于 2012-10-19T17:54:52.227 に答える
-1

現在のantバージョンの-1.9.4オペレーティングシステム:-動作16.04 Ubuntuしませんでした。

sshに変更され、sshが1.9.3ポイントされたのは、/usr/bin/ant 成功した観察でした。

16.04 and ant 1.9.3 is working
14.04 ant 1.9.4 is working
于 2018-12-03T06:27:27.433 に答える