kotlin入门---构建工具(下)

Posted 龙宝宝IT

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kotlin入门---构建工具(下)相关的知识,希望对你有一定的参考价值。

接着昨天分享的内容继续为大家分享kotlin入门---构建工具(下)


\#\# 用gradle来构建kotlin项目


程序员通常都会有自己的工作文件夹,在Mac OS下他可以是~/workspace/,而在windows下则很可能是E:\workspace 。执行如下操作(命令为 Linux/Mac Os下的操作,windows可以使用鼠标与图形界面操作)


\#\#\# 初始化项目


1. 进入自己的工作文件夹

 

```

    cd ~/workspace

```

1. 在工作区中创建一个名叫kt的文件夹用来存放学习过程中所有的实例,并进入kt目录

 

```

    mkdir kt

 

    cd kt

```

 

1. 创建项目文件夹gradle-kt并进入文件夹

 

   ```

    mkdir gradle-kt

 

    cd gradle-kt

   ```


2. 使用gradle初始化一个java库项目。gradle非常强大,支持多种语言,既可以构建完整应用也可以打包项目库,因此初始化时需要指定项目类型,本例中使用 --type java-library。\(读者可以自行尝试一下 --type java-application,这样初始化生成的java代码中包含一个App类与一个静态的main函数,可以使用 gradle run来运行这个程序\)


```

    gradle init --type java-library

```


1. 项目创建成功,使用ls查看目录结构得到如下结果


```

    build.gradle gradlew settings.gradle gradle gradlew.bat     src

```

其中 build.gradle 是项目配置文件,gradlew与gradlew.bat分别是linux和windows下的脚本文件(后面会详细说明),settings.gradle是gradle的配置文件,gradle文件夹读者暂时可以忽略,而src文件夹用来存放源码,按照约定由于配置的原则,所有java源码应该在src/main/java文件夹下,如果不是,我们就需要在build.gradle文件中增加srcDirs选项的配置。


\#\#\# 为项目添加对kotlin的支持


1. 要编写kt代码我们就需要在src/main的目录中创建一个kotlin文件夹


```

    mkdir src/main/kotlin

```


1. 在kotlin文件夹中创建hello.kt文件并输入


```

    fun main\(args: Array<String>\) {


      println\("Hello, World!"\)


    }

```


1. 暂时不需要默认创建的java文件与测试文件,因此我们先删除java文件夹与test文件夹


```

    rm -Rf src/main/java/ 


    rm -Rf src/test/

```


1. 现在可以开始配置gradle构建项目了,编辑build.gradle文件,将文件内容替换成下面这样


```

    buildscript {


      ext.kotlin_version = '1.1.2-2'


      repositories {


        jcenter()


      }


      dependencies {


        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"


      }


    }


    apply plugin: 'kotlin'


    repositories {


      jcenter()


    }


    dependencies {


      compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"


    }

```

1. 好了,恭喜你,到这一步,我们可以利用自动构建来编译kotlin


项目了,输入以下命令


```

    gradle build

```

此时用ls命令查看,会发现项目中多出一个build文件夹,src文件夹中对应的代码文件会编译到build/class文件夹下,而build/libs文件夹包含了项目运行需要的依赖包,因此要以项目方式运行,我们需要加上classpath


```

    kotlin -cp build/libs/gradle-kt.jar  HelloKt

```

类名千万不要写错,由hello.kt编译出来的Hello首字母大写,后面还有Kt的K也是大写。


上一章的实验相信大家一定还记得吧,我刚才执行程序使用的是kotlin命令,如果要使用java命令直接运行程序,我们还应该把kotlin的运行时所需的jar包也包含进来。我的kotlin安装在“/usr/local/Cellar/kotlin/1.1.2-2/”因此键入命令


```

    java -cp /usr/local/Cellar/kotlin/1.1.2-2/libexec/lib/kotlin-runtime.jar:build/libs/gradle-kt.jar  HelloKt

```

Classpath有多个参数中间使用冒号隔开,当然为了方便,你也可以在环境变量中配置KOTLIN\_HOME到你的安装路径,这样使用时就可以使用$KOTLIN\_HOME代替长长的路径了。


\#\#\# 构建时将运行时环境打包


我们知道java是跨平台的,这是一个非常有用的特性,我们希望把打包的应用程序拷贝到任何一台装有java的计算机上都能正常运行,那么我们就应该像第一章的打包实验所做的一样,将kt的运行时一起打包,这样就不用费劲的在每一台机器上都安装kotlin编译器了。


只需要修改修改build.gradle文件的buildscript部分,在ext.kotlin\_version 下面增加一个属性ext.shadow\_version,在classpath后用逗号分隔,增加一个依赖,看上去应该是这个样子的


    buildscript {


      ext.kotlin_version = '1.1.2-2'


      ext.shadow_version = '1.2.3'



      repositories {


        jcenter()


      }



      dependencies {


        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version",


        "com.github.jengelman.gradle.plugins:shadow:$shadow_version"


      }


      //省略……

      apply plugin: 'kotlin'

      apply plugin: 'com.github.johnrengelman.shadow'

      //省略……

```


这样一来,就可以使用以下命令来重新构建项目,并使用java命令直接运行项目了

```

    gradle shadowJar


    java -cp build/libs/gradle-kt-all.jar HelloKt

```

\#\#\# 使用gradle自动构建并运行项目


我们已经使用Gradle帮助我们下载和管理依赖,自动编译项目打包资源,但是每次运行项目敲java命令和长长的classpath依然不太方便,如果大家有尝试过本章开头提到的 gradle init --type java-application方法,就会发现生成的build.gradle中启用了插件'application',并且设置了项目的入口文件 mainClassName,为我们的项目也增加这两项配置,那么我们就可以使用 gradle run来快速构建并运行我们的程序


```

    apply plugin: 'application'


    mainClassName = "HelloKt"

```

现在大家可以试着直接 gradle run了,如果我们为gradle命令加上-t参数

```

    gradle -t run

```

那么gradle将会监听我们的项目变化,当我修改hello.kt的源码并保存时,gradle将会立刻重新构建项目并运行,直到我输入ctrl+c终止gradle,这在实际开发中非常有用。



传授最新IT技术

帮你应对变化的世界


以上是关于kotlin入门---构建工具(下)的主要内容,如果未能解决你的问题,请参考以下文章

Gradle快速入门

Vite入门教程-下一代前端开发与构建工具

Gradle入门及SpringBoot项目构建

无法从 Java 源使用最新的 gradle 构建工具 (3.6.3) 生成 APK,错误引用 Kotlin

使用Maven构建工具开发Kotlin Web应用程序

使用Gradle构建工具开发Kotlin Web应用程序