Я испытываю странное поведение gradle / groovy.
У меня есть bulid.gradle
, который выглядит так:
def elastic(notation, projectName) {
if (allprojects.find { it.name == projectName }) {
println "adding project dependency on project $projectName"
project(projectName)
} else {
println "adding binary dependency on project $projectName"
dependencies.create(notation)
}
}
dependencies {
elastic('my.group:myProject:1.0','myProject')
}
Эта функция возвращает бинарную зависимость, если ее нетпроект с именем myProject
в противном случае он возвращает зависимость проекта.Но это не главное.Я часто использую эту функцию в разных проектах, и она хорошо работает.Но, чтобы избежать избыточного кода, я попытался экстернализировать эту функцию.Поэтому я поместил его в define_elastic_1.gradle
и применил этот файл к моему build.gradle
.Теперь это выглядит так:
apply from: "file://entw1/ENTWICKLUNG/GfOPGradleRepo/define_elastic_1.gradle"
dependencies{
elastic('my.group:myProject:1.0','myProject')
}
, но когда я делаю gradle build
, он говорит
Could not find method elastic() for arguments [my.group:myProject:1.0, myProject] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
Знаете ли вы, почему я не могу использовать функцию, которая определена в отдельном файле