ARX CHALLENGERS BLOG技術者ブログ
ARX CHALLENGERS BLOG技術者ブログ
2023/10/03
こんにちは。よく、車の運転で、道を間違えても自分の信じた道を進んで結果オーライなことが多々あるhidedxです。第1回目Apache Wicketの環境構築?でIDEの選択に失敗した可能性がありますが、車の運転と同じくそのまま進んでいきます。今回で、無事に環境構築したいな。
※第1回目が気になる方はこちらを参照ください⇩
【初心者向け】うっかりエンジニアの忘却メモ(Apache Wicket編)(第1回)
まず、Apache Wicketのダウンロードをします。どのバージョン使っていいか迷いますよねー。とりあえず、迷ったら、最新ダウンロードしてみましょう。
https://wicket.apache.org/start/download.html
おっと、開発中ですね。あぶない、あぶない。最新が一番いいという考えは危険ですね。
安定版を利用するようにした方が無難ですね。ということでApache Wicket 9.X.0を選択します。
ふむふむ、ビルドツール利用するパターンと手動パターンの方法が記載されていますね。
楽な方を選択でビルドツールを利用してみましょう。
ビルドとは、組み立てる、建てる、築く、作り上げる、などの意味を持つ英単語。ソフトウェアの分野では、プログラミング言語で書かれたソースコードなどを元に実行可能ファイルや配布パッケージを作成する処理や操作のこと。また、組み立てられた実行ファイルなどの特定の版を指す場合もある。
出典:https://e-words.jp/w/%E3%83%93%E3%83%AB%E3%83%89.html
要は、プログラムをあんなことやこんなことして実際に動くプログラムを作る作業のことですね。
よく似た用語で、コンパイル、デプロイもあるので、ここで確認しておきましょう。
・コンパイル
コンパイルとは、高水準のプログラミング言語で書かれたプログラムをそれより低い水準の言語や機械語に変換することを指します。コンパイルに必要なソフトウェアをコンパイラと呼び、変換されたプログラムはコンパイラ型言語と総称されます。コンパイルによって変換された、コンピュータが実行可能な形式はオブジェクトコード (機械語)と言います
・デプロイ
デプロイとは、システムを利用可能な状態にすることです。元々は「配置する、展開する」という意味の英語ですが、IT業界では主にWebアプリケーションなどのシステム開発工程において使われます。デプロイには、ソフトウェアのインストールや設定、テストなどの作業が含まれます。 デプロイによってシステムを実行可能な形式に変換し、利用者が利用できるようにします。デプロイには、ビルドやリリースなどの工程が含まれます。
3つの関係性をまとめると以下になります。
ビルドとは、デプロイに必要な実行ファイルを作ることで、 ソースコードをコンパイルして、
各ファイル同士をリンクして一つの実行ファイルにまとめることを指します。 一方で、リリースは
デプロイの最終工程であり、全工程を行うことで、リリースが完了し、アプリケーションが世の中に
公開されます。
ビルドが分かったところで、Javaのビルドツールを見ていきましょう。
・Make
makeはC言語やC++言語で主に利用されていますが、Java言語でも利用することが可能です。
Makefileと呼ばれるコンパイル、リンク、インストール等のルールを記述したテキストファイルを作成
し、依存関係を記述しておくと、記述された内容を自動化して実行してくれるツールです。基本Linux
上で動作するツールですが、一応、Windowsでも動きます。
https://gnuwin32.sourceforge.net/packages/make.htm
・Ant
Java言語で記述されたプログラムから実行ファイルを作成するビルドツールの一つです。
Apacheソフトウェア財団 (ASF)が開発し、オープンソースソフトウェアとして公開されています。
古くからあるビルドツールで、多くのJavaプロジェクトで利用されています。
XMLベースの構成ファイルでタスクを実行し、コンパイルやテストなどが実行出来ます。
・Maven
Antの後継として作成された、近年のJavaアプリ開発で頻繁に利用されているビルドツールです。
MavenはApacheソフトウェア財団 (ASF)が開発し、オープンソースソフトウェアとして公開されています。
Project Object Model(POM)の考え方で作成されており、POM の情報に基づきプロジェクト全体を管理します。
Mavenではライブラリの依存関係を解決してくれたり、必要なライブラリを自動でダウンロードしてくれるため、
より手軽にビルドすることが出来るようになっています。
・Gradle
Gradleは、Java、Kotlin、C++などの言語で書かれたプログラムから実行ファイルを作成するビルド
ツールの一つです。 Gradleは、AntやMavenのようなビルドツールの機能を組み合わせたもので、
プロジェクトのビルド、テスト、デプロイメントなどを自動化することができます。
Gradleは、多くのプラグインを提供しており、開発者が独自のビルドスクリプトを作成することがで
きます。近年のJavaプロジェクトでは、上述したMavenまたはGradleを利用することが多いです。
業務で主に利用いたのは、Ant or Mavenですが、Antは何か古いので、嫌な予感がするので、Mavenで
構築いていきたいと思います。ダメだったらGradleで行きたいと思います。と言っても、
1976年 Makefile、2000年 Ant、2004年 Maven、2007年 Gradle リリースなので、
もう、Gradleでいいのかもしれませんが。
Mavenを設定していきましょう。
1. Mavenインストール
Apache Mavenのインストールを行います。
https://maven.apache.org/download.cgiからダウンロードしてきます。
表示された画面で、以下zipファイルをダウンロードします。
ダウンロードが完了したら、任意の場所にダウンロードしたファイルを解凍しましょう。 解凍したフォルダを環境変数に設定しましょう。
Windowsの検索ウィンドウで「環境変数」を検索して設定画面を開きます。
Pathに解凍したフォルダ/binのパスを設定してください。 Visual Studio Codeを起動して、ターミナル上(コマンドプロンプト)で「mvn -v」を打ち込んで出力があればインストール成功です。
では、maven環境構築もできたので、やっとWicketの環境設定をやっていきたいと思います。
1. プロジェクト作成
https://wicket.apache.org/start/quickstart.html
上記サイトでプロジェクト作成用のmvnコマンドを自動で作ってくれます。便利ですね!
これを試してみましょう。
私の場合、このようなコマンドになりました。Visual Studio Codeを起動して、
ターミナル上(コマンドプロンプト)で実行します。
BUILD SUCCESSになれば成功です。そうすると以下のようなプロジェクトができています。
2. 実行
では、実行してみます。ターミナル(コマンドプロンプト)で「mvn jetty:run」コマンドを
実行してみましょう。以下のように出力があれば成功です。ブラウザアクセス可能になります。
■httpの場合(localhost:8080)
■httpsの場合(localhost:8443) ※オレオレ証明書なので、ワーニングでますが気にしないでください。
※オレオレ証明書とは
「オレオレ証明書」とは、自己署名証明書の一種で、自分自身の公開鍵を自分自身の秘密鍵で署名して
作成した証明書です。この証明書は、認証局に依頼せずに作成できますが、署名の正当性を検証する
ことができないため、安全性が低いです。 一般的には、オレオレ証明書は
「身元が怪しい機関(一般的には自分自身)が発行した身元証明書」と表現されます。
ブラウザ確認できて、終了したい場合はターミナル上で「CTRL + C」コマンドを実行してください。
ちなみに、Visual Studio Code上で「実行」⇒ 「デバッグなしで実行」でも実行可能です。
3. 動作確認
ちょっとサンプルのソースを修正して動きをみてみましょう。以下役割を簡単に説明します。
HomePage.java:デフォルトで表示されるページに関する処理を行う。
HomePage.html:デフォルトで表示されるページのテンプレートファイル。
追加メッセージを表示してみましょう!
① HomePage.java
versionを指定している下にラベル表示処理を追加します。
② HomePage.html
HomePage.javaで追加したtestラベルを表示するように追加します。
⓷実行
無事に追加したメッセージがちゃんと表示されましたね!
嫌な予感はしましたが、なんとか、Visual Studio Code上にWicket環境が作成できました。
ただ、Visual Studio Codeを有効活用できているか。疑問でありますが、そこは触れないでください。
賢明な皆さんは素直にEclipseを利用した方がいいかもしれませんね。
皆さんもApache Wicketに興味持たれましたか?
興味がわいた方は、マニュアルはこちらにありますので、一緒に深みにはまっていきましょう!
https://wicket.apache.org/learn/
さて、サンプル動かしただけで終わるのは、ちょっと寂しいので、次回はもう少し実践的なことをやって
いきたいなと思いますので、もう少しお付き合いください。
hidedx