Я намерен обобщить использование gradle для своих проектов и хотел бы повторно использовать один и тот же файл сборки везде. К сожалению, мне не удается определить свойства, упомянутые в $ subject, в одном файле, чтобы упростить миграцию.
Это Gradle 1.6.
Что я пробовал, безуспешно:
gradle.properties
: невозможно изменить имя (только чтение, необходимо использоватьsettings.gradle
и переопределить имя корневого проекта!);{source,target}Compatibility
не принимается во внимание;settings.gradle
:{source,target}Compatibility
тоже не в счет!
Итак, каков правильный метод для этого? Что я пробовал до сих пор gradle.properties
:
group = something
name = whatever # cannot do!
version = whatever
sourceCompatibility = whatever # not taken into account!
И в settings.gradle
:
sourceCompatibility = "whatever"; # not taken into account!
РЕДАКТИРОВАТЬ Ну, проблема "имени" просто не может быть решена; в остальном я использовал другой файл, который добавляю в файл сборки. Обработка "имени" действительно неправильная: /
РЕДАКТИРОВАТЬ 2 Это сейчас 2014 год и gradle 1.12, и проблема все еще не решена ...
Ответы:
gradle.properties:
theGroup=some.group theName=someName theVersion=1.0 theSourceCompatibility=1.6
settings.gradle:
build.gradle:
apply plugin: "java" group = theGroup version = theVersion sourceCompatibility = theSourceCompatibility
источник
apply from: "other.gradle"
илиapply from: "http://my.server.com/other.gradle"
. Обратите внимание, что последний в настоящее время не кешируется. Чтобы получить кеширование, вам нужно написать двоичный плагин.apply from:
решение; однако это не решает проблему с названием :(settings.gradle
. Однако использование плагина для установки одного и того же имени проекта во всех сборках кажется немного странным.init.gradle
домашней страницы пользователя (см. Руководство пользователя).Нашел решение аналогичной проблемы. Я использую Gradle 1.11 (по состоянию на апрель 2014 г.). Название проекта можно изменить прямо в
settings.gradle
файле следующим образом:rootProject.name='YourNewName'
Это позаботится о загрузке в репозиторий (для меня Artifactory с его плагином) с правильным artifactId.
источник
Я установил artifact baseName таким образом, чтобы он не зависел от имени проекта сборки, что позволяет мне добиться того, что вы хотите:
jar { baseName "core" }
С этим набором свойств, даже если имя моего проекта - "foo", при запуске
gradle install
артефакт публикуется с именемcore
вместоfoo
.источник
По-видимому, это было бы возможно
settings.gradle
с чем-то вроде этого.rootProject.name = 'someName' gradle.rootProject { it.sourceCompatibility = '1.7' }
Недавно я получил совет, что свойство проекта можно установить с помощью закрытия, которое будет вызываться позже, когда проект станет доступен.
источник
используйте buildSrc с Gradle Kotlin DSL, см. полный рабочий пример здесь: GitHub daggerok / spring-fu-jafu-example buildSrc / src / main / java / Globals.kt
источник