Gradle の uploadArchive タスクで止まってしまう
Gradle の Maven プラグイン を使って自前の Maven リポジトリに SCP プロトコルでアップロードしようとしたときの話。 環境は次の通り。
- Windows 8
- Gradle 1.8
何も考えずに uploadArchive タスクを実行すると、次のように 「uploadArchivesyes」 の表示でずっと止まってしまった。
$ ./gradlew uploadArchive :compileJava UP-TO-DATE :processResources UP-TO-DATE :classes UP-TO-DATE :jar UP-TO-DATE > Building > :uploadArchivesyes
特にエラーも出ないしなんでだろうと思って、--debug オプションを付けて実行してみると次のようなメッセージが出て止まってた。
$ ./gradlew --debug uploadArchive (中略) 13:28:04.403 [INFO] [system.out] The authenticity of host 'xxx.example.org' can't be established. RSA key fingerprint is 1b:c2:bf:82:c0:0b:58:74:4e:81:33:8d:c4:3b:1f:43. Are you sure you want to continue connecting? (yes/no): > Building > :uploadArchives
良くあるやつだ。 とりあえずここで 「yes」 って入力してエンター押したら進んだ。
こういう感じで、外部ツールを使った時にプロンプトが出てスクリプトが止まってしまって、スクリプト側が適切に処理できないってことたまにあるけど、スクリプト書くときにどういう感じで対処するのがいいんだろう。