Gradleについて(hanappu652) - Teppei-okitsu/spring-gradle-template GitHub Wiki

目的

 「Gradleとは」という入門的な部分から、本リポジトリのbuild gradleに書かれている内容をまとめていく

そもそもGradleとは

 ズバリ、プログラムをビルドするために利用します

あれ、、、ビルドってなんだっけ?

 以下のことです。

 ・コンパイル(ソースコードを人間語から機械語に翻訳する)

 ・テスト

 ・実行(コンピュータが翻訳された指示に従ってお仕事する)

 ・パッケージング(jarファイルにする = Javaの実行環境で動かせるようにする)

 ・デプロイ(作ったプログラムをしかるべき場所に置いたり、あれやこれやの設定をしたりして、使える状態にすること)

ちなみにGradle Wrapperというものがありまして、、、

 Gradleをインストールするのに色々手順があって、それを開発メンバー全員がやるのは面倒

そこで、最初の1人だけGradleの設定を行い、Gradle Wrapperを用意します。

→ 残りのメンバーはこのGradle Wrapperを使うことで自動的にGradleがダウンロードされ、コマンドが実行できるようになります。

実際のコマンド (Gradle Wrapperの生成)

$ gradle wrapper

$ ls
gradle      gradlew     gradlew.bat

このgradlewgradlew.batがGradle Wrapperと呼ばれるものです。

さらに ./gradlew initコマンドを使うことで、引数に指定したタイプのプロジェクトの雛形を作ることができます。

実際のコマンド (javaプロジェクトの雛形生成)

$ ./gradlew init --type java-application 

$ tree
~/java/samplepj
|--.gradle
|--build.gradle
|--gradle
|  |--wrapper
|  |  |--gradle-wrapper.jar
|  |  |--gradle-wrapper.properties
|--gradlew
|--gradlew.bat
|--settings.gradle
|--src
|  |--main
|  |  |--java(javaのソースコードを配置する)
|  |  |  |--App.java
|  |--test
|  |  |--java
|  |  |  |--AppTest.java

build.gradleというファイルがGradleによるビルドを定義する中心になるファイルであり、依存関係タスクを定義します。

ちなみに、Gradleの実行は、「gradle<タスク名1><タスク名2>」のようにタスクを連ねます

実際のコマンド (cleanとbuildとrunというタスクを実行したい場合)

$ ./gradlew clean build run

余談 (warを作るには?)

 先程の ./gradlew initで作られた雛形に「resource」「webapp」「java」などのフォルダ

「Javaのソースコード」「JSPファイル」などのファイルを用意します。

 ・webapp はWebアプリの公開フォルダになる部分です。JSPやHTMLファイルなどを配置しましょう。

   また、「WEB-INF」フォルダを用意し、その中に「web.xml」も配置しておきましょう

 ・javaフォルダにサーブレットなどのファイルを用意する

   build.gradleに使用プラグイン(warやgetty)を記載する

apply plugin: 'java'

apply plugin: 'war'

apply plugin: 'gretty'

war は warファイル作成のためのプラグイン (./gradlew war)

getty はJettyを利用するために必要になる。 (./gradlew run) によってJettyが起動し、アプリにアクセスが可能になる

参照

・Gradleの読み書き入門 (https://qiita.com/hatimiti/items/a127311d739c9d3e0045)    → Gradleの初歩的な知識や、Groovyの書き方まで書いてある 

・GradleでのWebアプリケーションの開発(https://www.tuyano.com/index3?id=5734183724908544)

 → Gradleのことは何となくわかったけど、じゃあどうやってアプリ作るんよって触りの部分を説明してくれている

⚠️ **GitHub.com Fallback** ⚠️