gradle - 升级到 gradle-5 后,war 文件很大
问题描述
我有一个多模块分级构建。有些项目有build.gradle
,有些项目有build.gradle.kts
。
当且仅当它们被定义在build.gradle.kts
.
$ unzip -l myproject.war
... // WEB-INF/classes left out
0 2019-05-27 15:23 WEB-INF/lib/
125552613 2019-05-27 15:10 WEB-INF/lib/gradle-api-5.4.1.jar
8566737 2019-05-27 15:10 WEB-INF/lib/groovy-all-1.0-2.5.4.jar
1607 2019-05-27 15:10 WEB-INF/lib/gradle-installation-beacon-5.4.1.jar
这些罐子是不需要的,并且会使战争文件膨胀。
使用 gradle-4.10 构建时不包含它们。
它们不包含在带有build.gradle
.
如何摆脱它们?
我无法粘贴整个构建逻辑。但是build.gradle.kts
遭受这种现象的项目之一看起来是这样的:
import groovy.lang.Closure
plugins {
`kotlin-dsl`
}
fun gradleScript(name: String) = rootDir.resolve("gradle-scripts/$name.gradle")
apply(from = gradleScript("java8-project"))
apply(from = gradleScript("war-no-version"))
apply(from = gradleScript("deploy-jboss"))
apply(from = gradleScript("kotlin"))
apply(from = gradleScript("jpa-provider"))
val testJpaWith: Closure<String> by extra
//testJpaWith("openjpa")
testJpaWith("hibernate")
val test by tasks.getting(Test::class) {
useJUnitPlatform()
}
dependencies {
compileOnly(Libs.javaee_api)
testCompileOnly(Libs.javaee_api)
testImplementation(Libs.assertj_core)
testRuntimeOnly("org.glassfish:javax.json:1.0.4")
testImplementation(Libs.javalin)
testRuntimeOnly("com.fasterxml.jackson.core:jackson-databind:2.9.6")
testImplementation("khttp:khttp:1.0.0")
testImplementation(project(":test-jpa"))
testImplementation(Libs.junit_jupiter_api)
testRuntimeOnly(Libs.junit_jupiter_engine)
}
解决方案
回答我自己的问题:
更换
plugins {
`kotlin-dsl`
}
经过
plugins {
id("org.jetbrains.kotlin.jvm")
}
解决了这个问题
推荐阅读
- python - 如何运行具有指定核心数的 Python 程序并跟踪它的内存和执行时间?
- flutter - Flutter bloc - 在状态变化时显示小吃吧
- python - 从 pandas python 中的多个 url 创建单个数据框
- nativescript - NativeScript + Angular - 向后导航动画
- javascript - 在工作表中搜索特定文本并根据其内容向该单元格添加注释
- sql - 在具有多个字段的 JSON 中搜索关键字
- pandas - 从格式为 dm-yyyy(Pyspark 或 Pandans)的字符串创建 Unix 时间戳
- swiftui - swiftui中的径向渐变形状
- python - 如何在机场地图上执行 mask rcnn
- javascript - 带有道具的 ramda ifElse