[JAVA] Mémo des paramètres Gradle (multi-projets pour tout en un) pour moi-même

Gradle 5.4.1

tree.


├─sub
│  ├─sub-sample1
│  │  └─src
│  │      ├─main
│  │      │  ├─java
│  │      │  │  └─sample
│  │      │  │      └─subs
│  │      │  │              Sub1.java
│  │      │  │
│  │      │  └─resources
│  │      │       └─subs
│  │      │               subSample1.txt
│  │      └─test
│  │          ├─java
│  │          └─resources
│  └─sub-sample1
│      └─src
│          ├─main
│          │  ├─java
│          │  │  └─sample
│          │  │      └─subs
│          │  │              Sub2.java
│          │  │
│          │  └─resources
│          │      └─subs
│          │              subSample2.txt
│          │
│          └─test
│              ├─java
│              └─resources
└─src
    ├─main
    │  ├─java
    │  │      Main.java
    │  │
    │  └─resources
    │          sample.txt
    │
    └─test
        ├─java
        └─resources

build.gradle


allprojects {
    apply plugin: 'java'
    group 'sample'
    version '1.0-SNAPSHOT'
    sourceCompatibility = 1.8
    targetCompatibility = 1.8
    compileJava.options.encoding = 'UTF-8'
    repositories { mavenCentral() }
    dependencies { testCompile group: 'junit', name: 'junit', version: '4.12' }
}

dependencies { 
    compile project(':sub:sub-sample1')
    compile project(':sub:sub-sample2')
}

def mainProjects = [':sub:sub-sample1', ':sub:sub-sample2']
task allInJar(type:Jar, dependsOn: mainProjects.collect({ it+':compileJava' })){
    dependsOn build
    baseName = rootProject.name
    manifest.attributes 'Main-Class': 'Main'
    def javaSubDir = "/classes/java/main"
    def resourcesSubDir = "/resources/main"
    from(buildDir.path + javaSubDir,
            files(mainProjects.collect{ project(it).buildDir.path + javaSubDir }))
    from(buildDir.path + resourcesSubDir,
            files(mainProjects.collect{ project(it).buildDir.path + resourcesSubDir }))
}

Exécutez avec gradlew all In Jar. task:build << allInJar

jar.


│  Main.class
│  sample.txt
│
├─subs
│      sample1.txt
│      sample2.txt
│
├─META-INF
│      MANIFEST.MF
│
└─sample
    └─subs
            Sub1.class
            Sub2.class

référence; Présentation approfondie de Gradle Construire une plate-forme automatisée avec des outils de construction de nouvelle génération (écrit par Takuma Watabiki, Nobuhiro Sue, Masatoshi Hayashi, Katsunobu Imai) java - Puis-je classer plusieurs projets dans un seul fichier jar?

Recommended Posts

Mémo des paramètres Gradle (multi-projets pour tout en un) pour moi-même
Eclipse Pleiades All in One version pour Mac
Paramètres Gradle pour l'utilisation de JUnit 5
Multi-projets Spring Boot 2 avec Gradle
Qu'est-ce que l'orientation objet après tout ou juste une chose à surveiller dans la programmation
Configurer un multi-projet Gradle dans IntelliJ pour créer un fichier JAR
Collection Gradle TIPS (pour moi)
éclipse tout en une seule installation
Comment exécuter Ant dans Gradle
Créer un JAR exécutable multi-projets avec Gradle
Mémo d'exécution Docker compilé pour moi
Paramètres de débogage SSL dans Java
Une doublure pour supprimer toutes les images Docker
Paramètres du pool de connexions dans Tomcat.jdbc
Comment filtrer JUnit Test dans Gradle
Paramètres d'exécution des programmes CGI localement (pour moi-même)
Configurer un multi-projet avec des sous-répertoires dans Gradle
Mémo pour la migration de Java vers Kotlin
Traduction française de Pléiades All in One
[Pour les débutants] Comment déboguer avec Eclipse
Pour mon fils qui a commencé à étudier Java avec "Introduction à Java" dans une main