JWW-Gradle » История » Версия 2
Александр Александров, 04.10.2020 15:31
1 | 2 | Александр Александров | h1. Gradle и Maven |
---|---|---|---|
2 | 1 | Александр Александров | |
3 | 2 | Александр Александров | h2. Gradle |
4 | 1 | Александр Александров | |
5 | 2 | Александр Александров | h3. Описание |
6 | |||
7 | 1 | Александр Александров | *Gradle*<notextile></notextile> — <notextile></notextile>"система автоматической сборки (Автоматизация сборки)":https://ru.wikipedia.org/wiki/%D0%90%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D1%81%D0%B1%D0%BE%D1%80%D0%BA%D0%B8<notextile></notextile>, построенная на принципах <notextile></notextile>"Apache Ant (Apache Ant)":https://ru.wikipedia.org/wiki/Apache_Ant<notextile></notextile> и <notextile></notextile>"Apache Maven (Apache Maven)":https://ru.wikipedia.org/wiki/Apache_Maven<notextile></notextile>, но предоставляющая <notextile></notextile>"DSL (Предметно-ориентированный язык программирования)":https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F<notextile></notextile> на языках <notextile></notextile>"Groovy (Groovy)":https://ru.wikipedia.org/wiki/Groovy<notextile></notextile> и <notextile></notextile>"Kotlin (Kotlin)":https://ru.wikipedia.org/wiki/Kotlin<notextile></notextile> вместо традиционной <notextile></notextile>"XML (XML)":https://ru.wikipedia.org/wiki/XML<notextile></notextile>-образной формы представления конфигурации проекта. |
8 | |||
9 | В отличие от <notextile></notextile>"Apache Maven (Apache Maven)":https://ru.wikipedia.org/wiki/Apache_Maven<notextile></notextile>, основанного на концепции жизненного цикла проекта, и <notextile></notextile>"Apache Ant (Apache Ant)":https://ru.wikipedia.org/wiki/Apache_Ant<notextile></notextile>, в котором порядок выполнения задач (targets) определяется отношениями зависимости (depends-on), Gradle использует <notextile></notextile>"направленный ациклический граф (Направленный ациклический граф)":https://ru.wikipedia.org/wiki/%D0%9D%D0%B0%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9_%D0%B0%D1%86%D0%B8%D0%BA%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%B3%D1%80%D0%B0%D1%84<notextile></notextile> для определения порядка выполнения задач. |
||
10 | |||
11 | Gradle был разработан для расширяемых многопроектных сборок, и поддерживает <notextile></notextile>"инкрементальные сборки (Итеративная разработка)":https://ru.wikipedia.org/wiki/%D0%98%D1%82%D0%B5%D1%80%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D0%B0%D1%8F_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0<notextile></notextile>, определяя, какие компоненты дерева сборки не изменились и какие задачи, зависимые от этих частей, не требуют перезапуска. |
||
12 | |||
13 | 2 | Александр Александров | h3. Полезные ссылки |
14 | 1 | Александр Александров | |
15 | # "Gradle basedir property":https://stackoverflow.com/questions/16111720/gradle-basedir-property |
||
16 | # "Gradle Task To Call Other Tasks In Order":https://stackoverflow.com/questions/17617791/gradle-task-to-call-other-tasks-in-order |
||
17 | # "Writing Build Scripts":https://docs.gradle.org/current/userguide/writing_build_scripts.html |
||
18 | # "Gradle Profiles for Multi-Project Spring Boot Applications":https://www.credera.com/blog/technology-insights/java/gradle-profiles-for-multi-project-spring-boot-applications/ |
||
19 | # "[SoF] How to set spring boot active profile in Gradle 4.7":https://stackoverflow.com/questions/50665667/how-to-set-spring-boot-active-profile-in-gradle-4-7/50719594 |
||
20 | # "[SoF] how to set active profile for gradle build of spring boot application?":https://stackoverflow.com/questions/39541087/how-to-set-active-profile-for-gradle-build-of-spring-boot-application |
||
21 | # "Шпаргалка по Gradle":https://habr.com/ru/post/458046/ |
||
22 | # "Использование buildSrc для внедрения дополнительной логики в Gradle":https://habr.com/ru/company/jugru/blog/342914/ |
||
23 | # "Подробно о задачах Gradle":https://habr.com/ru/post/167227/ |
||
24 | 2 | Александр Александров | |
25 | h2. Maven |
||
26 | |||
27 | h3. Описание |
||
28 | |||
29 | *Apache Maven* — фреймворк для автоматизации сборки проектов на основе описания их структуры в файлах на языке POM (англ. Project Object Model), являющемся подмножеством XML. Проект Maven издаётся сообществом Apache Software Foundation, где формально является частью Jakarta Project. |
||
30 | |||
31 | Maven обеспечивает декларативную, а не императивную (в отличие от средства автоматизации сборки Apache Ant) сборку проекта. В файлах описания проекта содержится его спецификация, а не отдельные команды выполнения. Все задачи по обработке файлов, описанные в спецификации, Maven выполняет посредством их обработки последовательностью встроенных и внешних плагинов. |
||
32 | |||
33 | Maven используется для построения и управления проектами, написанными на Java, C#, Ruby, Scala, и других языках. |
||
34 | |||
35 | h3. Полезные ссылки |
||
36 | |||
37 | # "How do we purge/clean the Maven repositories?":https://community.atlassian.com/t5/Bamboo-questions/How-do-we-purge-clean-the-Maven-repositories/qaq-p/411756 |
||
38 | # "Генерируем бины по json описанию":http://blog.qatools.ru/maven/json2pojo |