Необходимо записать условие в build.gradle, если оно удовлетворяет, оно должно загрузить зависимости из конкретной артефакты. - PullRequest
0 голосов
/ 09 апреля 2019

Я настраиваю новый проект gradle и хочу написать условие в build.gradle, чтобы оно загружало зависимости из определенного артефакта, если это условие удовлетворяет.

Я использую project.hasProperty("property") и мой блок репозиториеввыглядит следующим образом.

    mavenCentral()
    if(project.hasProperty("isRelease")){
        println("Inside gradle")
        maven { url 'release url' }
    } else {
        println("Inside snapshot")
        maven { url 'snapshot url' }
    }
    mavenLocal()
}```

1 Ответ

0 голосов
/ 09 апреля 2019

Просто передайте это так:

-PisRelease=Release

Я пробовал в этом коде:

repositories {

    if(project.isRelease == "Release"){
        println("I'm in")
    }

    mavenLocal()
}

и работал правильно.

enter image description here

ОБНОВЛЕНИЕ с решением, о котором говорилось в комментарии о прямой проверке свойства версии.Я поместил версию в build.gradle, но работает с версией в gradle.properties тоже

build.gradle

version="1.0.0-SNAPSHOT"

repositories {
    if (isRelease()){
        maven { url 'release url' }
    } else {
        maven { url 'snapshot url' }
    }
    mavenLocal()
}

def isRelease() {
    if(project.version.contains("SNAPSHOT")){
        println("Is a SNAPSHOT")
    } else if(!project.version.contains("SNAPSHOT") || project.version.contains("RC")){
        println("Is Release")
    }
}

Конечно, вы можете изменить isRelease логику с той, которая вам нужна.Это просто пример.

Надеюсь, это поможет

...