gpt4 book ai didi

gradle - gradle ssh插件中的引用spring-boot组装jar

转载 作者:行者123 更新时间:2023-12-02 14:17:21 39 4
gpt4 key购买 nike

我想在gradle中创建一个自定义任务,该任务会将组装好的jar上传到远程服务器。

我最好的工作结果是

doLast {
ssh.run {
def jarFile = "${jar.baseName}-${version}.jar"
session(remotes.role('qa')) {
put from: file("build/libs/${jarFile}"), into: "/home/${user}"
execute("sudo cp ${jarFile} /usr/share/feedserver/", pty: true)
...
}
}
}

但是,此方法使用了jar.baseName属性,该属性已弃用并给出警告:

The baseName property has been deprecated. This is scheduled to be removed in Gradle 7.0. Please use the archiveBaseName property instead.



替换它的正确方法是什么?

建议的archiveBaseName不起作用,例如
task updateOnQA(dependsOn: bootJar) {
doLast {
def jarFile = "${jar.archiveBaseName}-${version}.jar"
print "${jarFile}";
}
}

产出

task ':myproject:jar' property 'archiveBaseName'-1.0.12.jar

最佳答案

不推荐使用的baseName属性返回String,而新的archiveBaseName返回Provider<String>。要从提供程序获取实际值,必须调用.get()version属性也是如此,已被名为archiveVersion的提供程序取代。

如果要使用这些新属性,可以将任务更新为:

task updateOnQA(dependsOn: bootJar) {
doLast {
def jarFile = "${jar.archiveBaseName.get()}-${archiveVersion.get()}.jar"
print "${jarFile}"
}
}

但是,如果您正在寻找jar文件的实际路径,则可以使用:
put from: jar.archiveFile.get().getAsFile(), into: "/home/${user}"

在这里,第一个 .get()调用从提供者返回一个 RegularFile,并且 .getAsFile()调用将其转换为普通的 File

关于gradle - gradle ssh插件中的引用spring-boot组装jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58858881/

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