在 Initializr 登录页面上打开浏览器:
https://start.spring.io/
如您所见,配置向导出现,如以下屏幕截图所示:
我们将像这样配置我们的项目:
- Generate a Gradle Project with Kotlin and Spring Boot 2.0.0 M4
- Set the Group project to com.journaler
- Set the Artifact project to api
以下屏幕截图显示了项目配置:
我们将保持我们的第一个配置简单,稍后随着我们的进展和需要更多的依赖项进行扩展。按 生成项目 按钮。系统将要求您保存存档,如以下屏幕截图所示:
将 api.zip 保存到您的首选目录。打开目录并展开它。让我们在下面的截图中看看它的内容:
这显然是一个标准的 Gradle Kotlin 项目和一个标准的应用程序。我们将详细了解项目包含的最重要的文件。打开你的 build.gradle 配置。它的内容应该与此非常相似:
buildscript {
ext {
kotlinVersion = '1.1.4-3'
springBootVersion = '2.0.0.M4'
}
repositories {
mavenCentral()
maven { url "https://repo.spring.io/snapshot" }
maven { url "https://repo.spring.io/milestone" }
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-
plugin:${springBootVersion}")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlinVersion}")
classpath("org.jetbrains.kotlin:kotlin-allopen:${kotlinVersion}")
}
}
apply plugin: 'kotlin'
apply plugin: 'kotlin-spring'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
group = 'com.journaler'
version = '0.0.1-SNAPSHOT'
ssourceCompatibility = 1.8
compileKotlin {
kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
kotlinOptions.jvmTarget = "1.8"
}
repositories {
mavenCentral()
maven { url "https://repo.spring.io/snapshot" }
maven { url "https://repo.spring.io/milestone" }
}
dependencies {
compile('org.springframework.boot:spring-boot-starter')
compile("org.jetbrains.kotlin:kotlin-stdlib-jre8:${kotlinVersion}")
compile("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}")
testCompile('org.springframework.boot:spring-boot-starter-test')
}
从上到下,脚本为我们的项目执行以下操作:
- It defines Kotlin and Spring Boot versions
- It defines build script repositories and classpaths
- It applies Gradle plugins needed for the application to build and run
- It defines project group as com.journaler
- It defines version as 1.0 snapshot
- It set Kotlin's JVM compatibility to 1.8
- It defines project dependency repositories
- It defines Kotlin and Spring dependencies
对我们来说下一个重要方面是 Git 忽略配置。打开 .gitignore 看看:
.gradle
/build/
!gradle/wrapper/gradle-wrapper.jar
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
nbproject/private/
build/
nbbuild/
dist/
nbdist/
.nb-gradle/
.gitignore 配置将阻止我们对一些不需要的文件进行版本控制。接下来,打开 src/main.resources 目录下的 application.propeties 文件。该文件将为空。在这里,我们将为我们的应用程序定义特定于环境的参数。
最后,让我们探索代码!由于这是一个 Kotlin 应用程序,因此展开 src/main/kotlin 目录。继续浏览包结构 com/journaler/api 并打开 ApiApplication.kt:
package com.journaler.api
import org.springframework.boot.SpringApplication
import org.springframework.boot.autoconfigure.SpringBootApplication
@SpringBootApplication
class ApiApplication
fun main(args: Array<String>) {
SpringApplication.run(ApiApplication::class.java, *args)
}
里面的代码不多。代码简单易懂。我们定义了名为 ApiApplication 的应用程序类和分配给 SpringBootApplication 的注解。主要应用程序方法运行 Spring 应用程序。而已!
在我们构建和运行代码之前,还有一件事需要检查。展开目录结构以包含 ApiApplicationTest.kt 测试:
package com.journaler.api
import org.junit.Test
import org.junit.runner.RunWith
import org.springframework.boot.test.context.SpringBootTest
import org.springframework.test.context.junit4.SpringRunner
@RunWith(SpringRunner::class)
@SpringBootTest
class ApiApplicationTests {
@Test
fun contextLoads() {
}
}
实际上,这个测试并没有做任何事情。有关 Spring 测试和测试的更多信息可以在本书后面的章节中找到。现在,只需观察代码就足够了。
我们将构建并运行我们的应用程序。打开终端并导航到应用程序根目录。然后执行 Gradle clean 命令:
$ ./gradlew clean
Gradle 开始下载所需的依赖项:
如您所见,构建成功完成。要构建应用程序,请执行以下命令:
$ ./gradlew build
该代码将给出以下输出:
如您所见,Gradle 任务成功完成。要运行项目,请从终端导航到 build/libs 并执行以下命令:
$ java -jar ./api-0.0.1-SNAPSHOT.jar
代码输出如下所示:
该程序将运行并显示一些消息。现在,我们不会详细介绍,因为在我们实际执行第一个 API 调用之前还有很长的路要走。
在本节结束时,在我们从 IntelliJ 从头开始创建项目之前,我们将导入该项目。启动 IntelliJ 并选择 Import Project。选择我们提取项目的根目录并单击OK确认。 导入项目 向导出现。 M确保选择了 从现有源创建项目 选项。然后,点击Next,如下图所示:
如果您对 项目名称 和以下屏幕截图所示的路径感到满意,请单击下一步:
点击全部标记,然后点击下一步,如下截图所示:< /跨度>
然后点击Finish,如下图所示:
然后,选择 Import Gradle project 并在询问时添加 VCS root,如以下屏幕截图所示:
请在询问时使用 Gradle 包装器。 点击OK确认导入,如下图所示:
一段时间后,项目被导入。 您会注意到 ApiApplication 作为您可以运行的配置可用,如下图所示:
如果您的 IDE 没有自动检测到配置,请通过展开项目并找到 ApiApplication.kt 来运行应用程序,然后右键单击它并选择 Run ApiApplication。 kt。 输出与我们上次执行 JAR 时相同。
将以下行添加到您的 .gitignore 文件中,这样 Gradle 包装器就不会被版本控制。 Initializr 不会生成这些行:
...
gradlew
gradlew.bat
gradle/*