gradle + Kotlin で実行可能jarをビルドする

KotlinからMySQL 8.0に接続してみました。
Kotlin + gradleでMySQL 8.0に接続するプログラムを実行する

このプログラムを微調整。
単独で実行できるjarをビルドしてみます。


Kotlinプログラム



登録しているデータを検索するプログラムとしました。


  1. package sample
  2. import java.sql.*
  3. // MySQLへ接続
  4. fun main(args: Array<String>) {
  5.     var conn: Connection? = null
  6.     var stmt: Statement? = null
  7.     var rs: ResultSet? = null
  8.     try {
  9.         conn = DriverManager.getConnection("jdbc:mysql://192.168.1.101/sample", "admin", "P@ssw0rd")        
  10.         stmt = conn.createStatement()
  11.         rs = stmt.executeQuery("SELECT * FROM test")
  12.         while (rs.next()) {
  13.             println(rs.getInt("id"))
  14.             println(rs.getString("value"))
  15.         }
  16.     } catch (e: Exception) {
  17.         println(e)
  18.     } finally {
  19.         rs?.close()
  20.         stmt?.close()
  21.         conn?.close()
  22.     }
  23.     
  24. }





gradle



build.gradleを編集。
単独で実行できるjarとなるよう、必要なjarを同梱するよう構成します。

こちらを参考にさせていただきました。
ことりんと一緒 - 3. 実行可能 JAR

・build.gradle


plugins {
    // Apply the Kotlin JVM plugin to add support for Kotlin.
    id 'org.jetbrains.kotlin.jvm' version '1.3.72'

    // Apply the application plugin to add support for building a CLI application.
    id 'application'
}

repositories {
    // Use jcenter for resolving dependencies.
    // You can declare any Maven/Ivy/file repository here.
    jcenter()
}

dependencies {
    // Align versions of all Kotlin components
    implementation platform('org.jetbrains.kotlin:kotlin-bom')

    // Use the Kotlin JDK 8 standard library.
    implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8'

    // Use the Kotlin test library.
    testImplementation 'org.jetbrains.kotlin:kotlin-test'

    // Use the Kotlin JUnit integration.
    testImplementation 'org.jetbrains.kotlin:kotlin-test-junit'

    // ※ こちらの記載を追記
    // 実行可能jar作成時に必要
    compile 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.72'
    compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.20'

}

application {
    // Define the main class for the application.
    mainClassName = 'sample.AppKt'
}

// ※ こちらの記載を追記
// jar作成のための構成を追記
jar {
    manifest {
        attributes 'Main-Class': 'sample.AppKt'
    }
    from {
        configurations.compile.collect {
            it.isDirectory() ? it : zipTree(it)
        }
    }
}





jarを生成


$ gradle jar




build/libsにsample.jarが出力されました。
実行してみます。


$ java -jar build/libs/sample.jar
1
Kotlinで更新
2
Kotlinから追加



無事単独で実行できるjarファイルが作成できました。


関連記事

プロフィール

Author:symfo
blog形式だと探しにくいので、まとめサイト作成中です。
Symfoware まとめ

PR




検索フォーム

月別アーカイブ