LoginSignup
1
0

LibertyによるWebサービスアプリ開発メモ: (6)Eclipse-GitHub連携

Last updated at Posted at 2018-05-24

はじめに

Webサービス(REST)アプリを開発してLiberty上で動かすまでの流れについて、試したことを備忘録として記載していきます。
今回はEclipse-GitHub連携について。
今回使用しているEclipse Oxygenでは、Git用のプラグインはデフォルトで入っているようなので、特に追加も必要無さそうです。

関連記事

LibertyによるWebサービスアプリ開発メモ: (1)環境構築
LibertyによるWebサービスアプリ開発メモ: (2)MavenプロジェクトによるJAX-RSアプリ開発
LibertyによるWebサービスアプリ開発メモ: (3)JPA経由でのDBアクセス
LibertyによるWebサービスアプリ開発メモ: (4)ロギング
LibertyによるWebサービスアプリ開発メモ: (5)JUnitによる単体テスト
LibertyによるWebサービスアプリ開発メモ: (6)Eclipse-GitHub連携

準備

GitHubリポジトリ準備

ソースを管理するGitHubのリポジトリが無いと話にならにので、それは事前に用意してきましょう。新規に作成するならこの辺参考に...
GitHub Home
GitHub 入門
【GitHub超初心者入門】この前初めてGitHubを使い始めたエンジニア見習いが書くGitHubの使い方と実践~とりあえず一緒に動かしてみようぜ!~

SSH設定

EclipseからGitHub連携を行う際SSH接続じゃないとPushなどの操作が制限されるようなので、Eclipse - GitHub間でSSH接続を行えるよう設定をしておきます。

キーペア作成

SSH接続を行う際公開鍵認証を使うので、公開鍵-秘密鍵のペア(キーペア)を作成する必要があります。

LinuxとかだとOpenSSHとか割と標準で入っているので問題ないのですが、Windows上だと標準機能としては提供されていないようなので、他のツールなどの力を借りる必要があります。

MinGW + MSYS だとWindowsでUnixライクな機能を色々使えるので、そこでSSH関連の機能を追加すると、キーペア作成用のssh-keygenコマンドが使えます。
参考:
MinGW+MSYSインストール メモ
マルチ・プラットフォームを扱うインフラ屋さんのための連携技術: SSH編

もしくは、gitをインストールするとssh-keygenコマンドが使えるらしい。
参考:
秘密鍵・公開鍵を作成する(Win)
GitHub Help: Generating a new SSH key and adding it to the ssh-agent

秘密鍵をEclipseに指定

EclipseからSSHを使用する際に使用する秘密鍵として、上で作成した秘密鍵を設定します。
EclipseのメニューからWindow - Preferenceで以下のように秘密鍵を指定します。
image.png

公開鍵をGitHubの自分のプロファイルに登録

GitHubのアカウントのプロファイルに、上で作成した公開鍵を設定します。
参考:
Adding a new SSH key to your GitHub account

Settingを選択
image.png

SSH and GPG keysを選択
image.png

New SSH Keyボタンを押して、任意のTitleを指定し、Keyに生成された公開鍵の中身(テキスト)をコピペして Add SSH Keyを押す!
image.png

登録されればOK。

Eclipse - GitHub 連携をはじめる

新規にプロジェクトを作成してそれをGitHubに登録する

GitHubを使ってソース管理を行う場合、複数メンバーで開発を進めるケースが多いと思います。その場合、スタート地点としては以下の2つが考えられます。

  • 最初に自分でEclipse上に作成したプロジェクトをGitHubに新規に登録してそれを他のメンバーに公開する
  • 既にGitHub上に誰かが作ってくれたものをベースに、それを取り込んで使う

ここでは前者の、最初にプロジェクトを作成して公開するというのをやってみます。

参考:
Eclipse 上から新規プロジェクトを Github に Push する方法

GitHubリポジトリーのクローン

まず、GitHubリポジトリーのクローンを行います。ここでは新規に作成したGitHubリポジトリーを対象にしているので、リポジトリーは今の所カラの状態です。
クローンしたいGitHubのリポジトリーのURI(SSH経由)を確認しておきます。
image.png

Gitパースペクティブ - Git Repositoriesビューで、"Clone a Git Repository and add the clone to this view"ボタンをクリック
image.png

上で確認したおいたURIを指定して、プロトコルとしてsshを選択します。
image.png

Next
image.png

ローカルのリポジトリのディレクトリを指定してFinish
image.png

プロジェクトを作成してGitHubにPush

まず適当にEclipse上でプロジェクト作成します。ここでは前の記事で作成したMavenLibertyTest01というプロジェクトをGitHubで管理することを想定します。
JavaEEパースペクティブのEnterprise Explorerビューで、プロジェクト名を右クリックし、Team - Share Projectを選択
Configure Git Repositoryというウィンドウが開くので、先ほどクローンしたリポジトリと公開するプロジェクトを選択してFinish
image.png

プロジェクトに「>」マークが付きます。
image.png

プロジェクトを右クリック - Team - Commitを選択すると、Git Stagingビューが開くので、このビューの左上にあるUnstaged Changesの全項目を左下のStaged Changesに全てドラッグ&ドロップし、Commit Messageにコメントを記載して、Commit and Pushボタンを押す
image.png

Next
image.png

Finish
image.png

OK
image.png

これでGitHubのリポジトリーに、masterブランチが作成されて、指定したプロジェクトがPushされた状態となる。

gitパースペクティブのGit Repositoriesビューはこんな感じになってます。
image.png

ブラウザからGitHubのリポジトリを参照するとこんな感じになっています。
image.png

GitHub上のプロジェクトを取り込む

次に、「既にGitHub上に誰かが作ってくれたものをベースに、それを取り込んで使う」というケースをやってみます。最初に登録してた人とは別のメンバーが、GitHubに上がっているものをローカルに取り込んで作業を開始するイメージです。

GitHubリポジトリーのクローン

ここは途中まで上の手順と同じです。

クローンしたいGitHubのリポジトリーのURI(SSH経由)を確認しておきます。
image.png

Gitパースペクティブ - Git Repositoriesビューで、"Clone a Git Repository and add the clone to this view"ボタンをクリック
image.png

上で確認したおいたURIを指定して、プロトコルとしてsshを選択します。
image.png

クローンしたいブランチ(この例ではmasterのみ)を選択してNext
image.png

ローカルのリポジトリのディレクトリを指定してFinish
image.png

リポジトリのクローンが作成される
image.png

ローカルリポジトリからプロジェクトをインポート

事前に、こちらを参考に、Libertyサーバーの作成は実施しておく。

クローンしたローカルリポジトリからプロジェクトをインポートします。
JavaEEパースペクティブのEnterprise Explorerビューを右クリック-Import-Importを選択し、Projects from Gitを選択
image.png

Next
image.png

Next
image.png

Next
image.png

プロジェクトを選択してFinish
image.png

こんな感じでmasterブランチに紐付いたプロジェクトとして認識されます。
image.png

あとはこのプロジェクトを普通に変更なりローカルでテストなりをしてきます。
ローカルでテストする場合の環境依存の設定などは変える必要があるかもしれません。
また、Mavenを使ったプロジェクトの場合、取り込んだ時にプロジェクトに赤×が付く場合がありますが、Mavenのメニューからアップデート(プロジェクト右クリック - Maven - Update Projectを選択)することで解消される場合があります。

操作例

とりあえず基本的なところだけ。

Push

ローカルにクローンしたプロジェクトを編集して一通りテストが完了したら、その修正を確定させてgitHubのブランチにも反映します。

ここではあんまり意味は無いですが、コメント行を無駄に追加してみます。
image.png

変更している間に他のメンバーが同じブランチを編集している場合があるので、競合しないかチェックするために一度Pull(後述)してから実施するとよいでしょう。

gitパースペクティブのGit StagingビューのUnstaged Changesという所に、変更したソースのリストが表示されています。
image.png

確定したいソースをStaged Changesにドラッグし、Commit Message欄に修正内容を記載します。
image.png

Commit and Pushボタンで、変更の確定とgitHubリポジトリへの変更反映が行われます。
image.png

ブラウザでGitHubリポジトリの様子を見ると、最新の変更が反映されたことが分かります。
image.png

Pull

他の人が行った更新をローカル環境に反映させてみます。(上の反映を行った人とは別のメンバーがPullする想定)

ローカルのリポジトリーを右クリック-Pull...
image.png

Finish
image.png

変更内容確認
image.png

プロジェクトの該当ソースを開くと、先のコメントが追加されているのが確認できます。
image.png

ブランチ作成

最初に作られたmasterをベースに別のブランチを作成してみます。

Git RepositoryビューのLocalからベースとなるブランチを右クリック-Create Branch...を選択
image.png

任意の名前をつけてFinish
image.png

上でCheck out new branchにチェックをつけていたので、新しいブランチがcheck outされてそちらが有効になっています。
プロジェクト名の横にも新しいブランチ名が表示されているのが確認できます。
image.png

これで、新しいブランチで開発作業を進めることができます。

先と同じように新しいブランチで変更をcommitしてGitHubにPushしてみます。
変更内容をCommit and Push
image.png

Next
image.png

Finish
image.png

ブラウザからGitHubリポジトリを見ても新しいブランチが作成されたことが分かります。
image.png

ローカルの変更の破棄

ローカルで変更した内容をロールバックして元のブランチの状態に戻したい場合というのがありますのでそちらも補足を。

プロジェクトを右クリック - Replace With - HEAD Revisionで、最後にコミットした状態(コミットしてなければPullした状態)に戻ります
image.png

Discard Changes
image.png

1
0
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
1
0