Gradle - поведение / свойства переопределения из build.gradle - PullRequest
1 голос
/ 21 июня 2019

Я ни в коем случае не эксперт по Gradle, поэтому, пожалуйста, будьте осторожны ...

У меня есть сборка Gradle, которую я пытаюсь запустить на Jenkins. Build.gradle содержит следующее:

repositories {
    maven {
        url "http://some_internal_corporate_repo"
    }
}

Сервер Jenkins, на котором я запускаю задание, не может получить доступ к "some_internal_corporate_repo".

Как Я не могу изменить build.gradle. Я хотел бы знать, есть ли способ каким-либо образом расширить или переопределить build.gradle на сервере Jenkins, чтобы он указывал на mavenCentral (или похоже), может быть через файл инициализации или настройку свойства и т. д.

Заранее спасибо

РЕДАКТИРОВАТЬ: в конце концов, поскольку я использовал Jenkins, я использовал его поддержку Groovy (выполнить шаг сборки Groovy) для решения моей проблемы:

def file = new File('build.gradle')
def newConfig = file.text.replace('url "http://some_internal_corporate_repo"', 'url "http://repo.maven.apache.org/maven2/"')
file.text = newConfig

1 Ответ

1 голос
/ 21 июня 2019

Вы можете определить несколько репозиториев .

Порядок объявления определяет, как Gradle будет проверять зависимости во время выполнения

repositories {
    maven {
        url "http://some_internal_corporate_repo"
    }
    mavenCentral() 
}

Вы можете использовать свойства для определения URL репозитория Maven:

repositories {
    maven {
        url "${repositories_maven_url}"
    }
}

В файле gradle.properties

repositories_maven_url=maven_url

Согласно документации gradle , gradle.properties файлы применяются в следующем порядке:

  • gradle.properties в корневом каталоге проекта.
  • gradle.properties в каталоге GRADLE_USER_HOME.
  • системные свойства, например когда -Dgradle.user.home установлен в командной строке.

или вы можете использовать что-то вроде этого :

repositories {
        maven {
            url getMavenUrl()
        }
}

/**
 * Returns the url of the maven repo.
 * Set this value in your ~/.gradle/gradle.properties with repositories_maven_url key
 * If the property is not defined returns a default value
 * @return
 */
def getMavenUrl() {
    return hasProperty('repositories_maven_url') ? repositories_maven_url : "YOUR_DEFAULT_VALUE"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...