web-dev-qa-db-fra.com

Ajoutez un autre Java répertoire source au script gradle

J'ai un exemple Java package de projet

package com.example.testing;

avec une telle arborescence de fichiers

app
|
  src->com->example->testing->Main.Java

et un script gradle:

apply plugin: 'Java'
apply plugin: 'application'

sourceSets {
    main {
        Java {
            srcDirs 'src'
        }
    }


}

sourceSets.main.output.classesDir = file("classes")
mainClassName = 'com.example.testing.Main'

defaultTasks 'compileJava', 'run'

Maintenant, je veux ajouter un module à ce projet et mes dossiers ressembleront à ceci

app
|
  src1->com->example->testing->Main.Java

  src2->com->another_example->another_testing->Library.Java

Comment ajouter du nouveau code source au script gradle?

26
RedCollarPanda

Je suis d'accord avec @JB Nizet sur le respect des conventions standard. Si vous insistez toujours pour être anarchiste:

Vous avez déjà déclaré src dans votre ensemble de sources, pourquoi ne pas ajouter src1 et src2 ainsi que? Vous pouvez les ajouter au même ensemble de sources ou définir un ensemble de sources par module si vous le souhaitez.

sourceSets {
    main {
        Java {
            srcDirs 'src'
            srcDirs 'src1'
            srcDirs 'src2'
        }
    }
 }
34
RaGe

J'ai une approche légèrement différente avec un Gradle 4.6:

sourceSets {
    main {
        Java {
            srcDir 'src/main/Java'
            srcDir 'build/swagger-code-dummy/src/main/Java'
        }
    }
}

comme vous pouvez le voir, j'ai dû également spécifier les répertoires avec les sous-répertoires "/ main/Java", sinon gradle/intellij ne définissait pas le bon chemin.

Peut-être que cela aide aussi quelqu'un d'autre :)

9
gabowsky

sourceSets.main.Java.srcDirs = ['build/jasper', 'src/main/Java']

5
Fresh Codemonger