参考spring-boot在gradle ssh插件中组装的jar
Reference spring-boot assembled jar in gradle ssh plugin
我想在 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
属性returns一个String
,而新的archiveBaseName
returns一个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()
调用 returns 来自提供商的 RegularFile
,.getAsFile()
调用将其转换为正常的 File
。
我想在 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
属性returns一个String
,而新的archiveBaseName
returns一个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()
调用 returns 来自提供商的 RegularFile
,.getAsFile()
调用将其转换为正常的 File
。