Spring Cloud + Spring Boot + Gradle + Kotlin +Docker
新建项目
首先打开你的IntelliJ IDEA
按下图操作。

初始化项目
使用Spring Initializr初始化项目,按照项目需求选择Project SDK,使用官方的项目初始化工具https://start.spring.io。选择下一步。
选择Spring Boot的版本
继续下一步。。。。。。。。。
把你的项目信息填写完整吧

给你的项目起个名字吧

至此你的项目就新建完毕了。但是现在还有一点问题,我们希望使用kotlin语法去完成build.gradle脚本文件,但是初始化后的项目使用的是groovy的语法。
修改build.gradle
首先你必须把文件名称改成build.gradle.kts,然后按照kotlin语法将此文件内容改为如下
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
id("org.springframework.boot") version "2.3.2.RELEASE" apply false
id("io.spring.dependency-management") version "1.0.9.RELEASE" apply false
id("com.palantir.docker") version "0.25.0" apply false
kotlin("jvm") version "1.3.72" apply false
kotlin("plugin.spring") version "1.3.72" apply false
}
allprojects {
apply(plugin = "java")
group = "com.jiasha.project"
version = "0.0.1-SNAPSHOT"
repositories {
maven(url = "http://maven.aliyun.com/nexus/content/groups/public/")
maven(url = "http://maven.aliyun.com/nexus/content/repositories/jcenter")
mavenCentral()
}
}
subprojects {
apply(plugin = "org.springframework.boot")
apply(plugin = "io.spring.dependency-management")
apply(plugin = "org.jetbrains.kotlin.jvm")
apply(plugin = "org.jetbrains.kotlin.plugin.spring")
apply(plugin = "com.palantir.docker")
tasks.withType<KotlinCompile> {
kotlinOptions {
freeCompilerArgs = listOf("-Xjsr305=strict")
jvmTarget = "1.8"
}
}
tasks.withType<Jar> {
enabled = true
project.ext["jarArchiveBaseName"] = archiveBaseName.get()
project.ext["jarArchiveFile"] = archiveFile.get().toString()
project.ext["jarArchiveFileName"] = archiveFileName.get()
}
dependencies {
"implementation"(platform("org.springframework.cloud:spring-cloud-dependencies:Hoxton.SR7"))
"implementation"("org.springframework.boot:spring-boot-starter")
"implementation"("org.jetbrains.kotlin:kotlin-reflect")
"implementation"(kotlin("stdlib-jdk8"))
"testImplementation"("org.springframework.boot:spring-boot-starter-test")
}
}
Docker的使用
- 上述build.gradle.kts中,在plugins中增加了id(“com.palantir.docker”) version “0.25.0” apply false,subprojects中增加了apply(plugin = “com.palantir.docker”),再定义一个获取子项目Jar信息的全局变量:
tasks.withType {
enabled = true
project.ext[“jarArchiveBaseName”] = archiveBaseName.get()
project.ext[“jarArchiveFile”] = archiveFile.get().toString()
project.ext[“jarArchiveFileName”] = archiveFileName.get()
}
重新使用gradle构建项目就会发现你的gradle的打包工具中出现了docker插件。
在项目的根路径下增加/docker/DockerFile
FROM josefcs/alpine-jdk8
VOLUME /tmp
ARG JAR_FILE
ADD ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
新建项目至此结束,还请各位路过的大佬不吝赐教。
人生如逆旅,我亦是行人。
版权声明:本文为jiasha5788原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。