gpt4 book ai didi

maven - mavenDeployer没有使用变量值

转载 作者:行者123 更新时间:2023-12-03 06:04:22 25 4
gpt4 key购买 nike

我有一个使用maven插件的build.gradle文件。我正在尝试构建一个项目,并将 Artifact 上传到一个联系仓库。构建和上载部分工作正常,但是尝试动态设置版本名称和代码时遇到了问题。这是我的build.gradle文件中的重要任务:

uploadArchives {
repositories {
mavenDeployer {
snapshotRepository(url: "https://artifact.example.net/content/repositories/snapshots") {
authentication(userName: artifactUsername, password: artifactPassword)
}

pom.version = rootProject.ext.name.toString() + "-" + rootProject.ext.code.toString() + "-SNAPSHOT"
pom.artifactId = appId
pom.groupId = "com.example.mobile.android"
}
}
}

task getVersionCode(type: Exec) {
commandLine './getVersionCode.sh'
workingDir scriptDir
standardOutput = new ByteArrayOutputStream()
doLast {
rootProject.ext.code = standardOutput.toString() as Integer
println(code)
}
}

task getVersionName(type: Exec) {
commandLine './getVersionName.sh'
workingDir scriptDir
standardOutput = new ByteArrayOutputStream()
doLast {
rootProject.ext.name = standardOutput.toString()
println(rootProject.ext.name)
}
}

preBuild.dependsOn getVersionCode
preBuild.dependsOn getVersionName
uploadArchives.dependsOn getVersionCode
uploadArchives.dependsOn getVersionName

我发现的是,即使getVersionCode和getVersionName任务在执行uploadArchives任务之前运行,变量rootProject.ext.name和rootproject.ext.code仍具有默认值,而不是任务动态设置的值。我已验证是否将变量设置为:
rootProject.ext.name = "new Name"

然后我可以像这样打印出该值:
println(rootProject.ext.name)

一切正常,但是当我尝试在mavenDeployer任务中使用相同的变量时,这些变量将重置为其默认值。我在这里做错了什么?

最佳答案

尝试添加“mustRunAfter”,例如preBuild.mustRunAfter getVersionCode

关于maven - mavenDeployer没有使用变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39599438/

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