Groovy / Gradle

RustやNode.jsなど、最近のビルドツールは、ビルド時にリポジトリからダウンロードしてきますが、パッケージを記述する程度の使い方しか関与していません。Gradleというのは、Groovyという言語で記述されてるいことから、何かもっと違うことができそうな期待感をもたせてくれます。
Javaに関しては、いつも面倒に感じる環境構築が簡単なのはとても魅力です。IDEを使わずLinuxなどに比べて貧弱なWindowsのDOS窓とテキストエディタだけでも意外と使えることは、何かすぐに試したい場合、とても便利に感じます。(Javaはたまにしか使わないので特に感じます)
またGroovyという言語が使えるのも魅力です。(Groovyも同じくたまに動かしたいプログラムがあったりするため)
しかしJavaを取り巻く環境は、使い方、名前がよく変わったりするため、いろんな意味で大変です。(他も同じところがありますが情報が古め) そこで現時点でのGradleの挙動について押さえておくためテストしました。

まずは、タスクの基本的な使い方と、単独実行jarの作り方、
https://tech-lab.sios.jp/archives/9500

次に、Groovyでちょっと動かしてみたかったもの、
https://nowokay.hatenablog.com/entries/2009/04/09#1239268405

さらにGroovyでGETリクエストによるファイルのダウンロード
https://gist.github.com/ryo-murai/3179735/

の4つをそれぞれのサイトを参考にさせていただき、試しました。

環境) Windows 10
最新バージョンを使用

https://gradle.org/install/
7.4.2

http://jdk.java.net/
JDK 18

それぞれ解凍して、JAVA_HOME(jdk-18),PATH(jdk-18\binとgradle-7.4.2\bin)の設定

> gradle -v

————————————————————
Gradle 7.4.2
————————————————————

Build time: 2022-03-31 15:25:29 UTC
Revision: 540473b8118064efcc264694cbcaa4b677f61041

Kotlin: 1.5.31
Groovy: 3.0.9
Ant: Apache Ant(TM) version 1.10.11 compiled on July 10 2021
JVM: 18 (Oracle Corporation 18+36-2087)
OS: Windows 10 10.0 amd64

Groovyのバージョンは低めか・・

mkdir App1
cd App1

初期化: デフォルト設定を選択(Groovy, JUnit4..)

gradle init –type java-application

自動的に創られるHelloWorldサンプルのビルド

app/build.gradle

app/src/main/java/App1/App.java

gradle compileJava

サンプルの実行

gradle run

Jarの作成

gradle jar

Jarでの実行

java -cp app\build\libs\app.jar App1.App

サイトを参考に下記いろいろとテスト(build.gradleに追加)
-q 指定は、実行結果のみ出力
例) gradle -q samp1 (App1ディレクトリで実行)
defalut以外表示させようと、expose関連をたしたがうまくいかず

単独Jarの実行も同様に、

mkdir App2
cd App2
gradle init –type java-application

app/bundle.gradleの最後に以下を追加

(itは組み込み変数でイテレータ)
Jarの作成

gradle jar

実行

java -jar app\build\libs\App2.jar

これが簡単に作れるのはとてもいいです。(ここまで参考サイトとは微妙に違うので注意)

groovyプログラムの実行テスト

mkdir App3
cd App3
gradle init

applicationでなくbasic(default)を選択

空っぽの ./build.gradleに以下記述

実行

> gradle combi

  > Configure project :
  13
  
  BUILD SUCCESSFUL in 1s

コンビネータを使ったフィボナッチのテストでした。(Groovyはλ関数がとてもみやすい)

次にダウンロード
コンビネータテストのbuild.gradleをまると置き換え

Groovyの学習にもとても良いサンプルです。
buildscriptは、groovyをbuild.gradle内で動かすために必要なものだと解釈しました。

実行

> gradle download

  > Configure project :
  HTTP/1.1 200 OK saving downloaded file[jquery.js] …
  Unexpected failure: HTTP/1.1 404 Not Found
  HTTP/1.1 200 OK saving downloaded file[jquery.validate.js] …

  BUILD SUCCESSFUL in 4s

以上、参考サイトから微妙に変更しないといけないところがありましたが、最新の環境でここまで確認できました。