gpt4 book ai didi

java - 如何使用 CLI-Args 输入创建 Gradle BootRun 任务

转载 作者:行者123 更新时间:2023-12-03 05:37:16 25 4
gpt4 key购买 nike

语境:
我正在尝试创建两个激活 BootRun 的任务gradle 中的任务。我从其他模块调用这些任务)它是一个 SpringBootApp,它接受命令行参数并根据作为输入给出的参数采取行动。除此之外,它是代码生成器/表格生成器,如果有帮助的话。
Gradle

task generateClass(dependsOn:":tools:codegen:clean") {
bootRun {
args = ["--class"]
}

}

task generateMetadata(dependsOn:":tools:codegen:clean") {
bootRun {
args = []
args = ["--metadata"]
}


}



generateClass.finalizedBy generateClass:bootRun
generateMetadata.finalizedBy generateMetadata:bootRun
问题
上面的问题是,每当我调用 启动运行 来自 GenerateClassGenerateMetadata任务,它调用单个 BootRun没有我为任务设置的参数。
Should Work:
GenerateClass --> ClassArgs --> Run
GenerateMetadata --> MetadataArgs --> Run

But Works as:
Args = which ever task from above runs first, their arguments are set.
So sometimes it is
GenerateClass --> MetadataArgs --> Run
GenerateMetadata --> MetadataArgs --> Run
or
GenerateClass --> ClassArgs --> Run
GenerateMetadata --> ClassArgs --> Run
因此,我的解决方案是创建具有不同参数的自定义 bootRun 任务,或者通过运行任务有效地传递 CLI 参数。
注意 :是的,SpringBoot CLI 解析是正确的,因为我已经测试过了。另外,我从其他模块调用这些任务。

最佳答案

看完documentationJB Nizet 链接!我创建了这些使用 commandLineArguments 并使用 spring-profiles 的 BootRun 任务!希望这是有用的:)

task generateClass(type: org.springframework.boot.gradle.tasks.run.BootRun, dependsOn: 'build') {
doFirst() {
main = 'com.etcbase.uyap.generator.GeneratorApplication'
classpath = sourceSets.main.runtimeClasspath
args '--class'
systemProperty 'spring.profiles.active', 'dev'
}
}

task generateMetadata(type: org.springframework.boot.gradle.tasks.run.BootRun, dependsOn: 'build') {
doFirst() {
main = 'com.etcbase.uyap.generator.GeneratorApplication'
args '--metadata'
classpath = sourceSets.main.runtimeClasspath
systemProperty 'spring.profiles.active', 'test'
}
}

关于java - 如何使用 CLI-Args 输入创建 Gradle BootRun 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55216958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com