GradleTools

Связи
  • jandcode.jc.std.GradleTools (class)
  • Gradle должен быть установлен и доступен в PATH

Получение библиотек из репозиториев maven

Библиотеки располагаются в каталоге lib проекта в виде jar-файлов и zip-файлов с исходниками библиотеки.

Для библиотек, которые доступны в maven-репозиторях, имеется возможность описывать их декларативно, не скачивая их ручками.

Для включения этой возможности, в каталоге lib нужно создать project.jc. Выполните команду в корне проекта для создания файла lib/project.jc:

jc create -t:lib-project-jc

Будет создан примерно такой файл lib/project.jc:

import jandcode.jc.*
import jandcode.jc.std.*
import jandcode.commons.*

class P extends ProjectScript {

    void onInclude() {
        project.name = "lib-builder"
        include(GradleTools).with {
            publishDir = "../_jc/${project.name}"
            tempDir = "../temp/${project.name}"
        }
    }

}

и такой файл lib/lib.gradle:

repositories {
    mavenCentral()
}

dependencies {
    // compile "commons-io:commons-io:2.6"
}

В файле lib.gradle описываются зависисимости, так, как этого желает gradle.

Описав нужные библиотеки, перейдите в каталог корневого проекта и выполните любую команду, например просто jc.

Описанные библиотеки будут автоматически скачены и помещены в каталог _jc. Теперь они доступны наравне с обычными, помещенными в lib ручками, но не будут хранится в системе контроля версий.

Кроме того, если вы в процессе разработки добавите/удалите/измените состав библиотек, то они автоматически будут загружены вновь при любом выполнении jc.

Библиотека определенной версии фактически загружается на вашу рабочую станцию только один раз и помещается в кеш gradle, и в следующий раз будет браться оттуда.

Свойства GradleTools

  • publishDir - указывает каталог, в который будут скачаны jar и zip файлы. Нужно указать каталог, который находится вне каталога lib и игнорируется системой контроля версий
  • tempDir - указывает временный каталог, в котором будет происходить сборка. Нужно указать каталог, который находится вне каталога lib и игнорируется системой контроля версий

Заметки

Где брать библиотеки

Советую отличный сайт mvnrepository.com.