Gradle » History » Version 1
Alexey Demakov, 11/05/2015 05:16 PM
1 | 1 | Alexey Demakov | h1. Gradle-based build system. |
---|---|---|---|
2 | |||
3 | h2. История |
||
4 | |||
5 | Предыдущая версия системы сборки использовала Ant для управления сборкой и Ivy для управления зависимостями. |
||
6 | Система сборки представляла собой библиотечный Ant файл, который подключался к проекту и предоставлял |
||
7 | базовую функциональность по сборке Java проектов и управлению выпуском релизов. |
||
8 | Gradle реализует и расширяет эту функциональность, поэтому принято решение использовать этот инструмент для сборки проектов. |
||
9 | |||
10 | h2. Ресурсы |
||
11 | |||
12 | http://gradle.org |
||
13 | |||
14 | h2. Подключение Gradle к проекту |
||
15 | |||
16 | h3. 1. Установить gradle, определить переменную окружения GRADLE_HOME. |
||
17 | |||
18 | h3. 2. В каталоге проекта выполнить команду создания конфигурационных файлов для Java проекта: |
||
19 | |||
20 | @> gradle init --type java-library@ |
||
21 | |||
22 | Другие доступные типы проектов: https://docs.gradle.org/current/userguide/build_init_plugin.html |
||
23 | |||
24 | Также будет создана обертка-запускач gradlew/gradlew.bat, которая избавляет от необходимости вручную |
||
25 | устанавливать gradle для сборки проекта - разработчику достаточно просто выкачать рабочую копию проекта из репозитория, |
||
26 | gradle будет установлен автоматически. |
||
27 | |||
28 | Дополнительная информация: |
||
29 | https://docs.gradle.org/current/userguide/gradle_wrapper.html |
||
30 | https://docs.gradle.org/current/userguide/wrapper_plugin.html |
||
31 | |||
32 | h3. 3. Привести структуру папок в соответствие с соглашениями gradle: |
||
33 | |||
34 | src/main/java - код проекта |
||
35 | src/main/resources - ресурсы проекта |
||
36 | src/test/java - код тестов |
||
37 | |||
38 | Дополнительная информация: |
||
39 | https://docs.gradle.org/current/userguide/java_plugin.html#N12323 |
||
40 | |||
41 | h3. 4. Указать зависимости проекта в build.gradle: |
||
42 | |||
43 | compile - зависимость, необходимая для сборки проекта |
||
44 | testCompile - зависимость, необходимая для сборки тестов |
||
45 | группа:имя:версия - формат зависимости |
||
46 | |||
47 | dependencies { |
||
48 | // The production code uses the SLF4J logging API at compile time |
||
49 | compile ''org.slf4j:slf4j-api:1.7.12'' |
||
50 | |||
51 | // Declare the dependency for your favourite test framework you want to use in your tests. |
||
52 | // TestNG is also supported by the Gradle Test task. Just change the |
||
53 | // testCompile dependency to testCompile ''org.testng:testng:6.8.1'' and add |
||
54 | // ''test.useTestNG()'' to your build script. |
||
55 | testCompile ''junit:junit:4.12'' |
||
56 | } |
||
57 | |||
58 | Дополнительная информация: https://docs.gradle.org/current/userguide/java_plugin.html#sec:java_plugin_and_dependency_management |
||
59 | |||
60 | h3. 5. Указать репозитории, в которых ищутся зависимости в build.gradle: |
||
61 | |||
62 | repositories { |
||
63 | // репозиторий ИСП РАН, подключается, если есть зависимости от наших проектов |
||
64 | ivy { |
||
65 | url = ''http://forge.ispras.ru/repo'' |
||
66 | layout ''pattern'', { |
||
67 | artifact ''[organization]/[ext]s/[artifact]-[revision](.[ext])'' |
||
68 | } |
||
69 | } |
||
70 | // Use ''jcenter'' for resolving your dependencies. |
||
71 | // You can declare any Maven/Ivy/file repository here. |
||
72 | jcenter() |
||
73 | } |
||
74 | |||
75 | Дополнительная информация: https://docs.gradle.org/current/userguide/dependency_management.html#sec:repositories |