2015-01-21 2 views
5

Один из моих проектов требует Java 1.8, но иногда мы не замечали, что мы используем более старую java, чтобы получить некоторые странные ошибки.Как проверить версию java при запуске gradle?

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

Я попытался добавить проверку непосредственно в build.gradle на первой строке, но все еще выполняет некоторые другие задачи, например. (clean, compileJava) перед тем происходит проверка, когда я бегу:

$ ./gradlew 

Как правильно это сделать?

+0

Gradle построить скрипт обрабатывается и выполняется, как это. Поэтому, если вы поместите свой чек прямо в скрипт, а не в какую-то задачу, он должен быть выполнен сразу. Можете ли вы поделиться соответствующей частью файла build.gradle? – Nikem

+0

@Nikem, спасибо, только что найденный каталог 'buildSrc' в корне проекта, а заданные в нем задачи выполняются до моего кода проверки. Это нормально, чтобы они запускали сначала – Freewind

+1

@Freewind, здесь не нужно использовать 'buildSrc'. Просто добавьте версию проверки кода java в самом начале скрипта 'build.gradle'. – Opal

ответ

15

Если вы поставили чек очень рано в своем жизненном цикле сборки (простая проверка в начале вашего файла build.gradle или в методе apply плагина), вы не должны видеть никаких выполненных задач.

вы можете использовать JavaVersion перечисление для того, что является частью Gradle апи:

if(JavaVersion.current() != JavaVersion.VERSION_1_8){ 
    throw new GradleException("This build must be run with java 8") 
} 
+0

Он также может быть проверен раньше, как в начале вашего 'settings.gradle'. – eskatos

+0

хорошо, если вы хотите проверить это действительно скоро. поместите его в скрипт инициализации ;-) –

+0

Конечно. Обратите внимание, что сценарии инициализации заставляют вас добавлять «-init-script your-script» в свои командные строки или должны сидеть вне проекта (в $ HOME или $ GRADLE_HOME). См. Https://docs.gradle.org/current/userguide/init_scripts.html. – eskatos

Смежные вопросы