【发布时间】:2022-01-17 05:52:55
【问题描述】:
我有一个模块化的 Java 项目,它结合了库和 CLI 工具:
- cli-工具/
- 创建补丁
- 发现冲突
- 模块/
- 核心
- 分析
我正在尝试从 cli-tools 项目创建一个组合发行版,其中包含所有依赖项 jar 和由 application 插件生成的所有启动脚本。我已经使构建依赖项正常工作,并且包含了我的本地 jar,但未包含启动脚本,runtimeClasspaths 中也没有任何内容。我的日志语句显示任何子项目上都没有插件,即使它们的任务正在执行,所以也许我检查插件的方法是错误的?
// cli-tools/build.gradle.kts:
tasks.named("distZip").configure {
subprojects.forEach {
dependsOn(it.path.plus(":startScripts"))
}
}
distributions {
main {
distributionBaseName.set("patch-tools")
contents {
project.subprojects.forEach { sub ->
val subLibs = sub.buildDir.resolve("libs")
if (subLibs.exists())
into("lib") {
from(subLibs)
}
sub.logger.info("plugins of {}: {}", sub.name, sub.plugins)
if (sub.pluginManager.hasPlugin("application")) {
into("lib") {
from(sub.configurations.findByName("runtimeClasspath"))
}
into("bin") {
from(sub.buildDir.resolve("scripts"))
}
}
}
}
}
}
我怎样才能让它工作,以便发布脚本和传递依赖项包含在分发中?
【问题讨论】: