Gradle 내에서 git describe
으로 전달 된 glob와 일치하는 최신 git 태그를 가져 오는 데 문제가 있습니다. 그것은 터미널에서 잘 작동합니다.Android build.gradle에서`git describe --match` 사용
project.ext.releaseVersionName = "git describe --match \'[0-9]*.[0-9]*.[0-9]*\' --abbrev=0 --tags".execute().text.trim()
그리고
def getReleaseVersion = { ->
try {
def stdout = new ByteArrayOutputStream()
exec {
commandLine 'bash', '-c', 'git', 'describe', '--match "[0-9]*.[0-9]*.[0-9]*"', '--abbrev=0', 'HEAD'
standardOutput = stdout
}
return stdout.toString().trim()
}
catch (ignored) {
return null
}
}
그러나 모두가 빈 문자열을 반환 :
나는 다음과 같은 노력했다. 만약 내가 일치하지 않으면 모든 것이 올바르게 작동합니다. 나는 그 문제를 일으키는 globs라고 생각합니다.
'--match ='로 추가하는 것을 포함하여 위의 모든 것을 시도했지만 다시 빈 문자열을 얻으십시오. – StuStirling
bash와 -c를 제거한 것처럼 보입니다. '~ 설명', '~', '~ [0-9] *. [0-9] *. [0-9] *', '- abbrev = 0', 'HEAD' – StuStirling
사실, 'bash', '-c'의 경우 나머지는 하나의 단일 문자열이어야합니다.이 경우 bash의 '-c'인수에 대한 값이므로 bash에 의해 더 해석됩니다. – mmlr