build.gradle - Gradle Kotlin Build Script 无法获取 SpringBoot Lib
问题描述
我在构建脚本上尝试了几种方法,但仍然无法将 springboot 库放入我的 jar 中,我可以知道我的脚本有什么问题吗?
父级 Gradle Kotlin DSL
import io.spring.gradle.dependencymanagement.dsl.DependencyManagementExtension
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
extra["kotlin.version"] = "1.3.31"
plugins {
java
idea
id("org.springframework.boot") version "2.1.4.RELEASE" apply false
kotlin("jvm") version "1.3.31" apply false
kotlin("plugin.spring") version "1.3.31" apply false
}
subprojects {
apply(plugin = "org.jetbrains.kotlin.jvm")
apply(plugin = "org.jetbrains.kotlin.plugin.spring")
apply(plugin = "io.spring.dependency-management")
the<DependencyManagementExtension>().apply {
imports {
mavenBom(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)
}
}
group = "com.company.market"
version = System.getenv("VERSION") ?: "0.2-SNAPSHOT"
java {
sourceCompatibility = JavaVersion.VERSION_1_8
}
repositories {
maven {
credentials {
username = "anonymous"
password = "anonymous"
}
url = uri("http://repo1.maven.apache.org/maven2/")
}
}
dependencies {
implementation(kotlin("reflect"))
implementation(kotlin("stdlib-jdk8"))
testImplementation("org.springframework.boot:spring-boot-starter-test")
}
tasks.getByName<KotlinCompile>("compileKotlin") {
kotlinOptions {
freeCompilerArgs = listOf("-Xjsr305=strict")
jvmTarget = "1.8"
}
}
tasks.getByName<KotlinCompile>("compileTestKotlin") {
kotlinOptions {
freeCompilerArgs = listOf("-Xjsr305=strict")
jvmTarget = "1.8"
}
}
}
子 (API) Gradle Kotlin DSL
这是将用于部署的子模块
plugins {
`java`
}
dependencies {
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("org.springframework.boot:spring-boot-starter-security")
implementation("org.springframework.security.oauth:spring-security-oauth2:2.3.3.RELEASE")
implementation("org.springframework.security.oauth.boot:spring-security-oauth2-autoconfigure:2.1.4.RELEASE")
implementation("org.springframework.boot:spring-boot-devtools")
implementation("org.apache.commons:commons-dbcp2")
implementation("org.mariadb.jdbc:mariadb-java-client")
implementation("org.springframework.boot:spring-boot-loader:2.1.4.RELEASE")
implementation(project(":app-expr"))
implementation(project(":app-data"))
}
我可以成功构建 api 模块,但 jar 很小,并且意识到 lib 不是在 jar 内构建的。
解决方案
我在我的子项目中添加了springboot lib并解决了
plugins {
`java`
id("org.springframework.boot")
}
dependencies {
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("org.springframework.boot:spring-boot-starter-security")
implementation("org.springframework.security.oauth:spring-security-oauth2:2.3.3.RELEASE")
implementation("org.springframework.security.oauth.boot:spring-security-oauth2-autoconfigure:2.1.4.RELEASE")
implementation("org.springframework.boot:spring-boot-devtools")
implementation("org.apache.commons:commons-dbcp2")
implementation("org.mariadb.jdbc:mariadb-java-client")
implementation("org.springframework.boot:spring-boot-loader:2.1.4.RELEASE")
implementation(project(":expr"))
implementation(project(":data"))
}
推荐阅读
- javascript - Google API 如何从结果中获取一个变量
- themes - 流利的用户界面反应团队的主题
- python - Django Rest Framework - 在 Viewset 视图列表 API 上添加分页(限制对象数),而无需 Django 模型类
- php - 如何在同一页面上为每个 MySQL 用户提供自己的 FullCalendar?
- http - 为什么 webrtc 需要异步连接发送调用配置?
- python - 使用带有 Range 的 Header 后为空 content_length
- google-cloud-platform - 运行 GCP 代码时出现问题,它找不到表,因此不让运行
- vba - 有没有办法验证用户的时间和日期在 microsoft access vba 中是否正确?
- python - 如何以毫秒为单位使用 time.sleep() 和变量?
- flutter - 如何更新代码并删除最后一个 SingleTickerProviderStateMixin