読者です 読者をやめる 読者になる 読者になる

一角獣は夜に啼く

ただの日記です。

思ってることとか考えたこととか適当に書きます。 まじめな話は 「ひだまりソケットは壊れない」 に書いています。

Gradle の uploadArchive タスクで止まってしまう

GradleMaven プラグイン を使って自前の Maven リポジトリに SCP プロトコルでアップロードしようとしたときの話。 環境は次の通り。

何も考えずに 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」 って入力してエンター押したら進んだ。

こういう感じで、外部ツールを使った時にプロンプトが出てスクリプトが止まってしまって、スクリプト側が適切に処理できないってことたまにあるけど、スクリプト書くときにどういう感じで対処するのがいいんだろう。