LoginSignup
2
1

More than 1 year has passed since last update.

Spring Cloud Contract メモ - Getting Startedでの気付き

Last updated at Posted at 2021-05-23

1. やったこと

2. バージョンなど

  • Java 11
    • AdoptOpenJDK-11.0.11+9
  • Spring Boot 2.4.6
  • Spring Cloud Contract 2.2.7.RELEASE
  • Spring Cloud Contract 3.0.2

3. 気づき

3.1. Githubリポジトリにssh接続の場合にエラーになった

3.1.1. 事象

  • エラーメッセージに下記のように出力された
    • Caused by: com.jcraft.jsch.JSchException: Auth fail

3.1.2. 原因

  • GithubリポジトリにSSHでアクセスするためにはSSH鍵の登録が必要
  • 以下の原因が想定される
    • Github側にSSH鍵の登録を忘れた or 誤っている
    • .ssh/configにSSH鍵の設定を忘れた or 誤っている

3.1.3. 解決

# .ssh/config例
Host github.com
  IdentityFile ~/.ssh/id_rsa
  User git

3.2. GithubにSSH鍵を設定したのにエラーになった

3.2.1. 事象

  • エラーメッセージに下記のように出力された
    • Caused by: com.jcraft.jsch.JSchException: invalid privatekey: [B@3946075

3.2.2. 原因

3.2.3. 解決

  • SSH鍵を作成する時に以下のようなコマンドで作成した
    • ssh-keygen -m PEM -t rsa -b 4096 -C "your_email@example.com"
    • SSH鍵の先頭が-----BEGIN RSA PRIVATE KEY-----になっていることを確認した

3.3. テストは成功したけど、Github接続するところでエラーが出ている

  • 以下のようなエラーメッセージが出力されたと思ったが、出なくなったのでスキップ(エラーメッセージは記憶なので間違いあるかも)
    • Caused by: com.jcraft.jsch.agentproxyAgentProxyException: java.io.IOException: failed to fctrl usocket: -1
  • ssh-agentを起動したらエラーが出なくなった、ような気がした
  • ここでエラーになっても接続はできるようなので無視しても良いかも

3.4. Githubリポジトリのブランチ名がmasterじゃない

3.4.1. 事象

  • エラーメッセージに下記のように出力された
    • Caused by: org.eclipse.jgit.api.errors.RefNotFoundException: Ref master cannot be resolved

3.4.2. 原因

  • デフォルトでmasterブランチを参照するようになっているため

3.4.3. 解決

以下のいずれかで対応できる

  • (1) AutoConfigureStubRunnerなどの設定で、git.branchにブランチ名を指定したpropertiesを設定する
@AutoConfigureStubRunner(
    repositoryRoot = "git://git@github.com:ShigeoTejima/spring-cloud-contract-demo.git",
    ids = {"com.example:cdc-producer-demo:+::8100"},
    stubsMode = StubRunnerProperties.StubsMode.REMOTE,
    properties = {"git.branch=main"})
% env STUBRUNNER_PROPERTIES_GIT_BRANCH=main ./mvnw clean test
or
% ./mvnw -Dstubrunner.properties.git.branch=main clean test

おわり。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1