GradleでKotlinのプロジェクトを作成する

2018-12-15  /  KotlinGradle

Kotlin入門1日目:まずはMacでの環境構築。Intellijはインストール済み。

GradleとKotlinのインストール

どちらもbrewを使ってインストールする。Javaもいるんでインストールしておく。

brew cask install java
brew install kotlin
brew install gradle

JavaはOpenJDK11が入るみたい。

とりあえずKotlinの動作確認

Working with the Command Line Compiler - Kotlin Programming Language

こちらを参照して、以下のコードを実行してみる。

$ cd /tmp
$ cat <<KT > hello.kt
fun main(args: Array<String>) {
    println("Hello, World!")
}
KT
$ kotlinc hello.kt -include-runtime -d hello.jar
$ java -jar hello.jar
Hello, World!

ひとまず動いた。

Gradleを使ったプロジェクト作成

Creating New Gradle Builds

とりあえずGradleの方で初期化がいるのかな。

$ mkdir hello-kotlin
$ cd hello-kotlin/
$ gradle init --dsl kotlin

Select type of project to generate:
  1: basic
  2: groovy-application
  3: groovy-library
  4: java-application
  5: java-library
  6: kotlin-application
  7: kotlin-library
  8: scala-library
Enter selection (default: basic) [1..8] 6

Project name (default: hello-kotlin):
Source package (default: hello.kotlin):

BUILD SUCCESSFUL in 7s
2 actionable tasks: 2 executed

途中でプロジェクトのタイプを聞かれたので、6: kotlin-applicationにしてみた。

$ tree
.
├── build.gradle.kts
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── settings.gradle.kts
└── src
    ├── main
    │   ├── kotlin
    │   │   └── hello
    │   │       └── kotlin
    │   │           └── App.kt
    │   └── resources
    └── test
        ├── kotlin
        │   └── hello
        │       └── kotlin
        │           └── AppTest.kt
        └── resources

13 directories, 8 files

こんな感じのファイル構成になっている。とりあえず作成されたコードは以下。

$ cat src/main/kotlin/hello/kotlin/App.kt
/*
 * This Kotlin source file was generated by the Gradle 'init' task.
 */
package hello.kotlin

class App {
    val greeting: String
        get() {
            return "Hello world."
        }
}

fun main(args: Array<String>) {
    println(App().greeting)
}

ひとまず実行してみる。

$ gradle run

> Task :run
Hello world.

Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.0/userguide/command_line_interface.html#sec:command_line_warnings

BUILD SUCCESSFUL in 12s
3 actionable tasks: 3 executed

やはり初回の起動は遅い。必要なライブラリとかをダウンロードしたりするからかな。あとなんかWarning出てるし。いろいろと気になることはあるものの、とりあえず今日はここまで。

次回はIntelliJ IDEAのプロジェクト構築をGradleからやってみたい。