Project

General

Profile

Gradle » History » Revision 2

Revision 1 (Alexey Demakov, 11/05/2015 05:16 PM) → Revision 2/9 (Alexey Demakov, 11/05/2015 05:18 PM)

h1. Gradle-based build system. 

 h2. История 

 Предыдущая версия системы сборки использовала Ant для управления сборкой и Ivy для управления зависимостями. 
 Система сборки представляла собой библиотечный Ant файл, который подключался к проекту и предоставлял  
 базовую функциональность по сборке Java проектов и управлению выпуском релизов. 
 Gradle реализует и расширяет эту функциональность, поэтому принято решение использовать этот инструмент для сборки проектов. 

 h2. Ресурсы 

 http://gradle.org 

 h2. Подключение Gradle к проекту 

 h3. 1. Установить gradle, определить переменную окружения GRADLE_HOME. 

 h3. 2. В каталоге проекта выполнить команду создания конфигурационных файлов для Java проекта: 

 @> gradle init --type java-library@ 

 Другие доступные типы проектов: https://docs.gradle.org/current/userguide/build_init_plugin.html 

 Также будет создана обертка-запускач gradlew/gradlew.bat, которая избавляет от необходимости вручную 
 устанавливать gradle для сборки проекта - разработчику достаточно просто выкачать рабочую копию проекта из репозитория, 
 gradle будет установлен автоматически. 

 Дополнительная информация:  
 https://docs.gradle.org/current/userguide/gradle_wrapper.html 
 https://docs.gradle.org/current/userguide/wrapper_plugin.html 

 h3. 3. Привести структуру папок в соответствие с соглашениями gradle: 

 src/main/java - код проекта 
 src/main/resources - ресурсы проекта 
 src/test/java - код тестов 

 Дополнительная информация: 
 https://docs.gradle.org/current/userguide/java_plugin.html#N12323 

 h3. 4. Указать зависимости проекта в build.gradle: 

 compile - зависимость, необходимая для сборки проекта 
 testCompile - зависимость, необходимая для сборки тестов 
 группа:имя:версия - формат зависимости 

 <pre> 
 dependencies { 
     // The production code uses the SLF4J logging API at compile time 
     compile ''org.slf4j:slf4j-api:1.7.12'' 

     // Declare the dependency for your favourite test framework you want to use in your tests. 
     // TestNG is also supported by the Gradle Test task. Just change the 
     // testCompile dependency to testCompile ''org.testng:testng:6.8.1'' and add 
     // ''test.useTestNG()'' to your build script. 
     testCompile ''junit:junit:4.12'' 
 } 
 </pre> 

 Дополнительная информация: https://docs.gradle.org/current/userguide/java_plugin.html#sec:java_plugin_and_dependency_management 

 h3. 5. Указать репозитории, в которых ищутся зависимости в build.gradle: 

 <pre> 
 repositories { 
     // репозиторий ИСП РАН, подключается, если есть зависимости от наших проектов 
     ivy { 
       url = ''http://forge.ispras.ru/repo'' 
       layout ''pattern'', { 
         artifact ''[organization]/[ext]s/[artifact]-[revision](.[ext])'' 
       } 
     } 
     // Use ''jcenter'' for resolving your dependencies. 
     // You can declare any Maven/Ivy/file repository here. 
     jcenter() 
 } 

 </pre> 
 Дополнительная информация: https://docs.gradle.org/current/userguide/dependency_management.html#sec:repositories