gpt4 book ai didi

java - 使用gradle加载命令行属性但找不到方法execSpec()

转载 作者:行者123 更新时间:2023-12-01 20:09:18 25 4
gpt4 key购买 nike

我正在尝试按照 Delegate command line system properties to spring-boot-gradle-plugin runApp task #592 从命令行属性加载 -Dspring.profiles.active

我的 gradle 构建文件的一部分是

apply plugin: 'java'
apply plugin: 'application'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: 'jacoco'
apply plugin: 'docker'

bootRun {
execSpec {
systemProperty 'com.example.foo', 'bar'
}
}

我收到一条错误消息

Could not find method execSpec() for arguments [build_48hmmm554of8gjd2p2pou6vn0$_run_closure5$_closure17@30ae2373] on task ':bootRun' of type org.springframework.boot.gradle.run.BootRunTask.

如何加载 execSpec()?

最佳答案

从 Spring Boot 2.0.0 开始,execSpec 应该可以在 bootRun 中工作。然而我今天遇到了同样的问题。奇怪的是,它在某一时刻起作用,在我更改项目名称后几秒钟后停止工作。我意识到这一更改触发了 Gradle 刷新,之后我的 gradle 缓存中出现了两个不同版本的 spring-boot-gradle-plugin-2.0.0.BUILD-SNAPSHOT.jar 。一个是 57 kb,另一个是 58 kb。我打开jar包,查看内容,发现差异正是类org.springframework.boot.gradle.tasks.run.BootRun,其中1个是3 kb,而7 kb在另一个版本中。所以我猜 57 kb 版本缺少 execSpec

然后我直接检查了Spring存储库,发现快照文件是今天(11/23/2017)的。因此,今天出现了新的快照,而该版本中的 execSpec 已消失。由于您的问题是从十月份开始的,我们可能没有使用相同的文件,但您可能遇到了同样的问题。我真的不明白为什么 execSpec 似乎来来去去,但我想这就是使用 SNAPSHOT 版本的代价。

因此,除了等待第一个稳定版本或再次包含 execSpec 的下一个快照或提供设置系统变量的另一种可能性之外,我们对这个问题无能为力。

编辑:我问了 Spring 的人here execSpec 发生了什么。因此,bootRun 又回到了 JavaExec。所以根本不可能再在那里使用 execSpec

关于java - 使用gradle加载命令行属性但找不到方法execSpec(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46924150/

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