今天练习 Kotlin 的时候突发奇想,想使用 Gradle 代替 Maven 作为依赖管理工具。
一开始我以为很复杂,没想到 gradle init
一个命令就搞定了,难怪百度 gradle kotlin
没啥结果,囧
前提
-
安装了 Gradle,安装教程请参考 Gradle 基础教程 - 安装
-
安装了 Kotlin
初始化
创建目录
mkdir mydemo cd mydemo
初始化 Gradle 项目
gradle init
出现以下提示时输入 6
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
接着出现以下提示时选择
Select build script DSL: 1: groovy 2: kotlin Enter selection (default: kotlin) [1..2] 1
为什么选择 groovy
是因为 kotlin
没出来之前用的就是 groovy
,熟门熟路了。
出现以下提示时输入 mydemo
,其实就是默认的,按回车键就可以了
Project name (default: mydemo): mydemo
出现以下提示时输入 my.demo
Source package (default: mydemo): my.demo
按下回车键之后就会开始初始化了,初始化完成后的目录结构如下
. ├── build.gradle ├── gradle │ └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle └── src ├── main │ ├── kotlin │ │ └── my │ │ └── demo │ │ └── App.kt │ └── resources └── test ├── kotlin │ └── my │ └── demo │ └── AppTest.kt └── resources
Gradle 项目最重要的就是两个文件 settings.gradle
和 build.gradle
,我们打交道的主要还是 build.gradle
build.gradle
build.gradle
里的默认内容为
注释有删减
// 定义 Gradle 项目用到的插件 plugins { // 定义 Kotlin 的 `jvm` 版本,默认即可,默认情况下使用的时当前最新的版本 id 'org.jetbrains.kotlin.jvm' version '1.3.11' // 用于定义该 Gradle 项目是一个命令行应用程序 id 'application' } // 定义第三方依赖的源仓库和顺序 repositories { // 所有依赖都使用 jcenter 作为源仓库 jcenter() } dependencies { // 指定 Kotlin 的标准库使用 JDK 8 的标准库 implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' // 指定运行测试时使用的 Kotlin 测试库 testImplementation 'org.jetbrains.kotlin:kotlin-test' // 指定运行测试时使用 Kotlin JUnit integration. testImplementation 'org.jetbrains.kotlin:kotlin-test-junit' } // 定义入口类 mainClassName = 'my.demo.AppKt'
运行 gradle run
我们先不对文件做任何修改,直接运行 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.1.1/userguide/command_line_interface.html#sec:command_line_warnings BUILD SUCCESSFUL in 31s 3 actionable tasks: 3 executed
main.kt
接下来我们来看看 main.kt
的内容
/* * This Kotlin source file was generated by the Gradle 'init' task. */ package my.demo class App { val greeting: String get() { return "Hello world." } } fun main(args: Array<String>) { println(App().greeting) }
很简单有没有
目前尚无回复