
🗺️ はじめに
前回の記事では、
について解説しました。
📝 前回の記事はこちら 👇
手元のPCにあるアプリの設計図(pom.xml)も「Java 17用」に書き換わり、サーバー環境との足並みもバッチリ揃っています。
今回はいよいよ、完成したソースコードをAWSサーバーへダウンロード(お引っ越し)し、アプリを組み立てる「デプロイ完結編」です。
ターミナルを開き、EC2サーバーにSSH接続した状態からスタートしていきましょう。
📥 サーバーへソースコードをダウンロードする
ステップ1:サーバーに「Git」をインストールする
まずはサーバー側にも、GitHubとやり取りするための通信ツール(Git)をインストールします。
以下のコマンドを実行してください。
ステップ2:GitHubから「Clone(複製)」する
次に、ご自身のGitHubリポジトリからソースコードを丸ごとダウンロードします。
以下のコマンドをご自身のURLに合わせて実行してください。
ステップ3:ダウンロードしたフォルダの中に入る
ダウンロードが完了すると、サーバーの中にアプリ名の新しいフォルダが作成されます。
そのフォルダの中へ移動します。
ステップ4:中身の確認(品質チェック)
移動したら、本当にファイルがサーバー内に届いているか確認しましょう。
画面に pom.xml や src といったファイル名がズラッと表示されれば成功……と言いたいところですが、おそらく違うものが表示されたはずです。

🪆 マトリョーシカ状態の謎
ダウンロード自体は成功しています。
しかし、ファイル構造が「箱の中の箱(マトリョーシカ)」のような状態になっています。
画面には README.md と、青文字で task-app と表示された「もう一つのフォルダ」が存在しているはずです。
これは、一番外側の大箱の中に、さらに同名の小箱が作られ、その小箱の中にソースコードが収納されている状態です。
🚪 解決策:もう一つ奥の部屋へ進む
目的のファイルに会うためには、さらにもう一歩「奥の部屋」へ進むだけでOKです。
cd task-app をもう一度実行し、再度 ls -l を打ってみてください。
今度こそ、見慣れたファイルがズラッと表示されるはずです。

🛠️ ソースコードをビルド(組み立て)する
無事にソースコードの心臓部に到着しました。
さっそくアプリの組み立て(ビルド)を行いたいところですが、ここにもAWSのLinux環境ならではの「罠」が潜んでいます。
ls -l の結果の mvnw(現場監督のファイル)の左側を見ると
となっています。
これは、Windowsから持ってきたことで
が消えてしまっている状態です。
まずはこの権限を復活させ、そのあとにビルドを実行しましょう。
ステップ1:現場監督(mvnw)に実行権限を与える
実行後にもう一度 ls -l を打つと、mvnw の文字が緑色になり、権限が -rwxr-xr-x に変わるのが分かります。
ステップ2:ビルド(組み立て)を実行する
💡 なぜ -DskipTests を付けるのか?
作成されたアプリは、起動時やテスト時に「データベース」に接続しようとします。
しかし、AWS上にはまだデータベースの器(RDS)を建設していません。
ここでテストまで走らせると「データベースが見つからない!」とエラーになってしまいます。
そのため、あえて「テストは一旦スキップして、箱詰めだけしてね!」と命令しています。
コマンドを打つと、インターネットから必要な部品が大量にダウンロードされます。
数分待って、最後に緑色の文字で
と表示されれば、組み立ては完了です。

🧐 Linux特有の記号
今回登場したLinux特有の記号について
🎫 1. -rw-r--r-- の意味(ファイルの権限バッジ)
これは、Linuxの世界における
という身分証のようなものです。
w (Write): 書くことができる
x (eXecute): 実行できる(プログラムとして動かせる)
Windowsから持ってきた直後の mvnw は、
という状態でした。
だからこそ、chmod +x というコマンドを使って
という処理を実行しました。
📍 2. ./ の意味(指差し確認)
ビルド時に打った ./mvnw の最初の ./ は、
という意味です。
Linuxはセキュリティ上、
という安全第一なルールを持っています。
そのため、
と、明確に指差し確認(./)をしてあげる必要があります。
✍️ おわりに
「マトリョーシカの罠」や「Linuxの実行権限の壁」を乗り越え、AWSサーバー上でアプリが BUILD SUCCESS を迎えました。
完成したアプリは、この階層に新しく作られる target というフォルダの中に、単一のファイル(.jar)として生成されています。

最後までお読みいただき、ありがとうございました🙇♂️