[JAVA] Jetez un coup d'œil à Gradle et lisez le build.gradle généré par Spring Initializr

Implémentation d'un serveur API REST Web simple avec Spring Boot + MySQL --Qiita

Outline Lisez le build.gradle généré automatiquement par Spring Initializr. Jetez un œil à Gradle pour lire.

References Gradle Build Tool Gradle User Guide

What is Gradle

Introduction du chapitre 1

Gradle est un système de construction dans un environnement Java (JVM)

Utilisez à la place de maven. Il importe des bibliothèques dépendantes, compile, génère des fichiers JAR, exécute des tests, etc.

Install Si vous utilisez IntelliJ, il est installé ensemble. Vous pouvez également l'installer avec Homebrew. C'était ici dans mon environnement.

% ~/.gradle/wrapper/dists/gradle-4.5.1-bin/a5vbgfvpwtoqz8v2cdivxz28k/gradle-4.5.1/bin/gradle -v  

------------------------------------------------------------
Gradle 4.5.1
------------------------------------------------------------

Build time:   2018-02-05 13:22:49 UTC
Revision:     37007e1c012001ff09973e0bd095139239ecd3b3

Groovy:       2.4.12
Ant:          Apache Ant(TM) version 1.9.9 compiled on February 2 2017
JVM:          1.8.0_162 (Oracle Corporation 25.162-b12)
OS:           Mac OS X 10.13.3 x86_64

build.gradle Modifiez essentiellement ce fichier. C'est comme pom.xml. Voici celui généré automatiquement lors de la création du projet.

build.gradle


buildscript {
    ext {
        springBootVersion = '2.0.2.RELEASE'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8

repositories {
    mavenCentral()
}


dependencies {
    compile('org.springframework.boot:spring-boot-starter-data-jpa')
    compile('org.springframework.boot:spring-boot-starter-web')
    runtime('mysql:mysql-connector-java')
    compileOnly('org.projectlombok:lombok')
    testCompile('org.springframework.boot:spring-boot-starter-test')
}

Voyons ce qui est écrit dans l'ordre du haut.

buildscript Resolve Dependencies Un bloc pour résoudre les propres dépendances de gradle.build. Il semble que le projet Gradle généré par Spring Boot utilise le plug Gradle de Spring Boot.

ext Lorsque vous déclarez une variable.

repositories Spécifiez le référentiel de la bibliothèque dépendante. Vous spécifiez le référentiel central de Maven. La méthode de spécification par URL est la suivante.

repositories {
    maven {
        url 'https://repo.spring.io/libs-snapshot'
    }
}

[Chapitre 51 Gestion des dépendances](http://gradle.monochromeroad.com/docs/userguide/dependency_management.html#sec: référentiels)

dependencies Lorsque vous spécifiez la bibliothèque. Vous utilisez la prise de gradle Springboot.

apply Déclarez un plug-in. Ces deux plug-ins dépendent de Spring Boot.

apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

org.springframework.boot Cela a été ajouté.

Application tasks
-----------------
bootRun - Runs this project as a Spring Boot application.

Une tâche qui exécute même l'application. Vous pouvez maintenant lancer l'application Spring Boot.

io.spring.dependency-management Ce mec a l'air super. Un plug-in qui reproduit le mécanisme de BOM (nomenclature) de Maven. ※BOM (bill of materials) Un mécanisme par lequel chaque bibliothèque définit ses propres dépendances. En bref, si vous souhaitez utiliser une bibliothèque, vous pouvez l'utiliser en décrivant cette bibliothèque et la nomenclature de cette bibliothèque.

Malheureusement, Gradle n'a pas ce mécanisme. Vous pouvez le faire avec ce plug-in.

Cependant, la nomenclature n'est pas utilisée dans cette build.gradle.

Lorsque vous l'utilisez réellement, utilisez-le dans les blocs suivants. exemple de spring-cloud-stream

dependencyManagement {
     imports {
          mavenBom 'org.springframework.cloud:spring-cloud-stream-dependencies:Fishtown.BUILD-SNAPSHOT'
     }
}

Livrables

La version sera exploitée ici Ci-dessous Icchan se trouve la version de jdk

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8

repositories Avec le gars de buildscript

dependencies Décrivez la bibliothèque dépendante. Celui écrit au début est appelé configuration. Chapitre 23 Plugins Java

Nom Source d'extension Tâches à utiliser sens
compile - compileJava Dépendances au moment de la compilation
runtime compile - Dépendances d'exécution
testCompile compile compileTestJava Dépendances supplémentaires lors de la compilation du test
testRuntime runtime, testCompile test Dépendances supplémentaires lors de l'exécution des tests
archives - uploadArchives Artefacts générés par ce projet(fichier jar, etc.)
default runtime - La configuration par défaut utilisée par les projets qui dépendent de ce projet. Il contient les artefacts et les dépendances dont ce projet a besoin au moment de l'exécution.

Il existe de nombreuses autres façons de l'écrire comme suit.

dependencies {
    runtime group: 'org.springframework', name: 'spring-core', version: '2.5'
    runtime 'org.springframework:spring-core:2.5',
            'org.springframework:spring-aop:2.5'
    runtime(
        [group: 'org.springframework', name: 'spring-core', version: '2.5'],
        [group: 'org.springframework', name: 'spring-aop', version: '2.5']
    )
    runtime('org.hibernate:hibernate:3.0.5') {
        transitive = true
    }
    runtime group: 'org.hibernate', name: 'hibernate', version: '3.0.5', transitive: true
    runtime(group: 'org.hibernate', name: 'hibernate', version: '3.0.5') {
        transitive = true
    }
}

prime

Hello World Ceci est un script.

% cat build.gradle
task hello {
    doLast {
        println 'Hello world!'
    }
}

% gradle hello 

> Task :hello
Hello world!


BUILD SUCCESSFUL in 0s
1 actionable task: 1 executed

Recommended Posts

Jetez un coup d'œil à Gradle et lisez le build.gradle généré par Spring Initializr
Un rapide coup d'œil sur le problème de Monty Hall
Jetons un coup d'œil à la procédure de démarrage de la JVM Hotspot
Jetons un coup d'œil à l'écran de Quant Analyzer!
Retour rapide sur Java au cours des cinq dernières années
Examiner le contenu du fichier WAR généré par le projet créé par Spring Initializr
Un regard sur Jenkins, OpenJDK 8 et Java 11
Jetons un coup d'œil aux fonctions de la console de gestion Keycloak (édition administrateur)
Lire les fichiers ligne par ligne VS lire à la fois
Jetons un coup d'œil aux fonctions de la console de gestion de Keycloak (édition utilisateur), service de compte utilisateur