web-dev-qa-db-fra.com

Gradle - ajouter un répertoire au chemin de classe

Ma demande nécessite qu'un \config le répertoire soit disponible sur le chemin de classe lorsqu'il recherche des fichiers de configuration sous le répertoire. J'ai actuellement des dépendances configurées comme ça, bien que ce ne soit probablement pas la bonne façon de rendre un répertoire disponible pour mon application:

dependencies {
    ... //runtime, compile dependencies pulled from repositories
    runtime files('config')
}

J'utilise le plugin application pour créer un Zip autonome pour mon projet. Si mon \config le répertoire a \config\subdir, file1, file2, le plugin produit un build\install répertoire avec la structure suivante:

| build
| --|install
| ----|bin
| ------ projectName
| ------ projectName.bat
| ----|lib
| ------ dependency1.jar
| ------ dependency2.jar
| ------|subdir
| ------ file1
| ------ file2

Cela ne fonctionne pas pour mon application car elle attend explicitement un \config répertoire

Cependant, voici la structure de répertoires dont j'ai besoin:

| build
| --|install
| ----|bin
| ------ projectName
| ------ projectName.bat
| ----|lib
| ------ dependency1.jar
| ------ dependency2.jar
| ----|config
| ------|subdir
| ------ file1
| ------ file2

Comment puis-je faire en sorte que gradle ajoute un autre répertoire à la génération et le spécifie dans le cadre du chemin de classe pour les scripts de démarrage générés?

11
Omar Darwish

Le plugin d'application documentation dit:

Les fichiers statiques à ajouter à la distribution peuvent être simplement ajoutés à src/dist

Je voudrais essayer de mettre votre répertoire de configuration dans src/dist/lib Et continuer à l'ajouter à votre chemin de classe avec runtime files('src/dist/lib/config')

Remarque: contourner ce défaut signifie que la configuration doit aller dans /lib Sous src/dist

6
RaGe

Vous pouvez essayer ceci:

project('project-name') {
   apply plugin: 'application'
   mainClassName = "your.main.Class"

   startScripts {
       classpath += files('src/dist/lib/conf')
   }

Plus d'informations peuvent être trouvées ici .

3
Andy Malakov