2017-03-19 2 views
1

Problème lors de l'extraction de tâches à partir d'un fichier build.gradle à appliquer dans le fichier app/root build.gradle. Le compilateur peut résoudre les problèmes MarkupBuilder et JsonSlurper mais ne peut pas résoudre les problèmes suivants: import org.apache.commons.lang.StringEscapeUtils.Problème lors du déplacement de tâches de build.gradle dans un fichier .gradle distinct. Réappliquez

J'ai essayé de l'ajouter en tant que dépendance dans le script nouvellement créé et également au niveau de l'application et du projet.

'org.apache.commons.lang:commons-lang:3.5'

L'erreur est inférieure à

Could not compile script '/project/app/newscript.gradle'. 
startup failed: 
> script '/project/app/newscript.gradle': 18: unable to resolve class org.apache.commons.lang.StringEscapeUtils 
    @ line 18, column 1. 
    import org.apache.commons.lang.StringEscapeUtils 
    ^

    1 error 

Est-ce que je fais quelque chose de mal ou est-ce pas possible? Aurais-je besoin d'inclure le script d'une manière différente que apply script: newscript.gradle ou un autre plugin dans le newscript.gradle?

Répondre

1

Un script Gradle est essentiellement un fichier Groovy. Ce qui à son tour est compilé en bytecode JVM, similaire aux classes Java. Ainsi, lors de la compilation d'un script avec une importation, les classes importées doivent être sur le classpath. Certaines classes comme le MarkupBuilder sont disponibles par défaut (incluses par Groovy ou Gradle).

Vous devez ajouter quelque chose comme ça pour être en mesure d'utiliser les classes dans votre script:

import org.apache.commons.lang.StringEscapeUtils; 

buildscript { 
    repositories { 
     mavenCentral(); 
    } 
    dependencies { 
     classpath 'org.apache.commons.lang:commons-lang:3.5' 
    } 
} 

La fermeture de buildscript ajoutera la bibliothèque sur le classpath du script Gradle et vous devriez être en mesure d'utiliser ses classes.