チェックアウト、クリーン、タグなどの基本的な svn タスクを実行するために、groovy を使用してカスタム gradle プラグインを作成しました。groovy クラスは、これらの操作を行うために svn コマンド ライン クライアントを呼び出します。Windows システムで実行すると正常に動作しますが、同じプラグインを Linux システム (Centos) で実行すると、次のエラーが発生します。
svn: E170000: '%22https://source.mycompany.net/svn/MyProject/trunk%22' の URL スキームを認識できません
コマンドプロンプトまたはシェルスクリプトを使用して、コマンドラインクライアントに同じ呼び出しを問題なく行うことができます. では、との違いは何ですか
ここに私のコードサンプルがあります:
String command =String.format("svn co -r %d --non-interactive --trust-server-cert -- username %s --password %s --depth infinity \"%s\" \"%s\"",
getRevision(),
getUserName(),
getUserPassword(),
getSrcUrl(),
getDir());
Process svnProcess = Runtime.getRuntime().exec(command);
BufferedReader stdInput = new BufferedReader(new InputStreamReader(svnProcess.getInputStream()));
BufferedReader stdError = new BufferedReader(new InputStreamReader(svnProcess.getErrorStream()));
String statusOutputLine =""
while ((statusOutputLine = stdInput.readLine()) != null)
{
logger.quiet(" " + statusOutputLine);
}
while (( statusOutputLine = stdError.readLine()) != null)
{
logger.error(statusOutputLine)
throw new Exception(statusOutputLine)
}
logger.quiet("Successfully Checked out the work space")
システムにネオンがインストールされています
-bash-4.1$ svn --version svn、バージョン 1.6.11 (r934486) 2011 年 6 月 25 日 11:30:15 にコンパイル
Copyright (C) 2000-2009 CollabNet. Subversion はオープン ソース ソフトウェアです。http://subversion.tigris.org/ を参照してください。 この製品には、CollabNet ( http://www.Collab.Net/ ) によって開発されたソフトウェアが含まれています。
次のリポジトリ アクセス (RA) モジュールが利用可能です。
- ra_neon : Neon を使用して WebDAV プロトコル経由でリポジトリにアクセスするためのモジュール。
- 「http」スキームを処理します
- 「https」スキームを処理します
- ra_svn : svn ネットワーク プロトコルを使用してリポジトリにアクセスするためのモジュール。
- Cyrus SASL 認証を使用
- 「svn」スキームを処理します
- ra_local : ローカル ディスク上のリポジトリにアクセスするためのモジュール。
- 「ファイル」スキームを処理します