[JAVA] Définir une tâche pour archiver ZIP un ensemble de fichiers de projet dans Gradle

Aperçu

--Définissez une tâche pour archiver ZIP un ensemble de fichiers de projet dans Gradle

build.gradle

plugins {
  id 'java'
}

repositories {
  mavenCentral()
}

version = '1.2.3'

dependencies {
  //Spécifiez la bibliothèque à utiliser
  implementation 'com.google.guava:guava:29.0-jre'
  testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.2'
  testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.6.2'
}

//Définir une tâche pour archiver ZIP un ensemble de fichiers de projet
task myZip(type: Zip) {

  //Répertoire de sortie des fichiers ZIP
  destinationDirectory = file('..') //Gardez-le un niveau plus haut

  //Nom du fichier à archiver
  archiveFileName =
    'myapp-' +
    archiveVersion.get() + '-' +
    new Date().format('yyyyMMdd_HHmmss_SSS') + '.zip'

  //Répertoire de projets
  from '.' //Répertoire actuel

  //Stockage de fichiers générés par Gradle(répertoire de construction)Ou
  // .N'incluez pas de répertoires cachés tels que gradle dans les fichiers ZIP
  excludes = ['build', '.*']
}

Contrôle de fonctionnement

On suppose que non seulement le code source, mais également les fichiers texte et les fichiers image sont inclus dans l'ensemble de projets.

$ find .
.
./foodir
./foodir/foo.jpg
./foodir/foo.png
./foo.txt
./build.gradle
./src
./src/test
./src/test/resources
./src/test/resources/mytest.properties
./src/test/java
./src/test/java/myapp
./src/test/java/myapp/AppTest.java
./src/main
./src/main/resources
./src/main/resources/myapp.properties
./src/main/java
./src/main/java/myapp
./src/main/java/myapp/App.java

Exécutez la tâche définie myZip.

$ gradle myZip

BUILD SUCCESSFUL in 651ms
1 actionable task: 1 executed

Vérifiez le contenu du fichier ZIP.

$ unzip -l ../myapp-1.2.3-20200816_091726_068.zip 
Archive:  ../myapp-1.2.3-20200816_091726_068.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  08-16-2020 07:45   foodir/
    14526  08-16-2020 09:16   foodir/foo.jpg
    18136  10-18-2019 18:50   foodir/foo.png
       84  08-16-2020 09:14   foo.txt
      998  08-16-2020 08:51   build.gradle
        0  08-16-2020 06:59   src/
        0  08-16-2020 06:59   src/test/
        0  08-16-2020 09:16   src/test/resources/
        9  08-16-2020 09:17   src/test/resources/mytest.properties
        0  08-16-2020 06:59   src/test/java/
        0  08-16-2020 06:59   src/test/java/myapp/
      357  08-16-2020 06:59   src/test/java/myapp/AppTest.java
        0  08-16-2020 06:59   src/main/
        0  08-16-2020 09:16   src/main/resources/
        9  08-16-2020 09:16   src/main/resources/myapp.properties
        0  08-16-2020 06:59   src/main/java/
        0  08-16-2020 06:59   src/main/java/myapp/
      286  08-16-2020 06:59   src/main/java/myapp/App.java
---------                     -------
    34405                     18 files

Matériel de référence

Recommended Posts

Définir une tâche pour archiver ZIP un ensemble de fichiers de projet dans Gradle
Définir l'heure de LocalDateTime à une heure spécifique
Comment exécuter une tâche djUnit dans Ant
Conseils Java - Créez un projet Spring Boot avec Gradle
Définir la source de l'ensemble de bibliothèques en tant que dépendance dans IntelliJ en tant que module distinct du projet
Ajouter un projet dans n'importe quel dossier avec Gradle
Afficher la tâche Gradle dans le projet Spring Boot
Comment créer un projet Spring Boot dans IntelliJ
Comment définir BuildConfig du projet de bibliothèque (module) sur Debug
Je souhaite définir une fonction dans la console Rails
[Rails 6] Comment définir une image d'arrière-plan dans Rails [CSS]
J'ai créé un plug-in qui exécute jextract avec des tâches Gradle
Configurer un multi-projet Gradle dans IntelliJ pour créer un fichier JAR
J'ai créé un client RESAS-API en Java
Comment configurer un proxy avec authentification dans Feign
Définissons une tâche Rake.
Gradle
Mémorandum Gradle
Installation de Gradle
Afficher la tâche Gradle dans le projet Spring Boot
Gérer la logique métier pour un ensemble d'entités dans une classe Java
Fixez le nom du fichier de guerre à celui défini dans Maven
La milliseconde définie dans /lib/calendars.properties de Java jre est UTC
Convertir un tableau de chaînes en une liste d'entiers en Java
Ajouter un horodatage au nom de fichier JAR dans Gradle
Comment afficher une liste de chaînes dans JSF sous forme de chaînes séparées par des virgules
Comment définir l'image pour dessiner à gauche / à droite du bouton à l'aide de la police d'icône (Iconics)