我有以下Gradle(kotlin-dsl(项目布局
工具根|-工具ui//reactjs|-tools main//springboot
在创建tools-main
springboot jar之前,需要将tool-ui/build
目录复制到tools-main/build/resources/main/static
目录。创建以下任务和依赖项是为了在tools-main/build.gradle.kts
中实现这一点
// Copy WebUI build to SpringBoot Jar
val copyWebUi = tasks.register<Copy>("copyWebUi") {
dependsOn(tasks.getByPath(":tools-ui:build"))
from(project(":tools-ui").layout.buildDirectory)
into(layout.buildDirectory.dir("resources/main/static/simconfig"))
}
tasks.getByName<BootJar>("bootJar") {
dependsOn(copyWebUi)
}
但是,它在构建过程中会发出以下警告。
>任务:tools main:copyWebUi由于以下原因,已禁用任务":tools-main:copyWebUi"的执行优化以确保正确性:-Gradle在以下位置检测到问题:"C:\tools-root\tools-main\build\resources\main\static\simconfig"。原因:任务":tools main:bootJarMainClassName"使用任务":tools main:copyWebUi"的此输出,而未声明显式或隐式依赖关系。这可能导致产生不正确的结果,具体取决于任务的执行顺序。请参阅https://docs.gradle.org/7.3.3/userguide/validation_problems.html#implicit_dependency有关此问题的更多详细信息。>任务:工具主:bootJar>任务:工具主:inspectClassesForKotlinIC>任务:工具主:jar由于以下原因,已禁用任务":tools main:jar"的执行优化以确保正确性:-Gradle在以下位置检测到问题:"C:\tools-root\tools-main\build\resources\main"。原因:任务":tools main:jar"使用任务":tools main:copyWebUi"的此输出,而没有声明显式或隐式依赖关系。这可能导致产生不正确的结果,具体取决于任务的执行顺序。请参阅https://docs.gradle.org/7.3.3/userguide/validation_problems.html#implicit_dependency有关此问题的更多详细信息
如何解决此错误
我不确定我是否理解了错误消息中提供的链接中的任何内容。
我找到了另一种方法来解决这个错误,使用Springboot gradle插件的BootJar任务。
// Copy WebUI build to SpringBoot Jar
tasks.getByName<BootJar>("bootJar") {
dependsOn(":tools-ui:build")
from(project(":tools-ui").buildDir) {
into("BOOT-INF/classes/static/")
}
}
此任务配置将直接将UI构建文件复制到springboot应用程序jar中。并且这不会发出";隐式依赖关系";警告