Я хочу потерпеть неудачу сборки gradle, если текущий проект все еще имеет снимок зависимостей.
Мой код пока ищет только зависимости java, но не содержит .NET, поэтому он работает только для проектов java. Я хочу, чтобы это работало для всех проектов.
def addSnapshotCheckingTask(Project project) {
project.tasks.withType(JavaCompile) { compileJava ->
project.tasks.create(compileJava.name + 'SnapshotChecking', {
onlyIf {
project.ext.isRelease || project.ext.commitVersion != null
}
compileJava.dependsOn it
doLast {
def snapshots = compileJava.classpath
.filter { project.ext.isRelease || !(it.path ==~ /(?i)${project.rootProject.projectDir.toString().replace('\\', '\\\\')}.*build.libs.*/) }
.filter { it.path =~ /(?i)-SNAPSHOT/ }
.collect { it.name }
.unique()
if (!snapshots.isEmpty()) {
throw new GradleException("Please get rid of snapshots for following dependencies before releasing $snapshots")
}
}
})
}
}
Мне нужна помощь в генерировании этого фрагмента, чтобы он был применим ко всем типам зависимостей (не только в Java)
Спасибо!
L.E. Может ли что-то подобное работать?
https://discuss.gradle.org/t/how-can-i-check-for-snapshot-dependencies-and-throw-an-exception-if-some-where-found/4064