2017-04-14 1 views
0

J'essaye de construire un générateur de projet de Yeoman pour android qui peut prendre des paramètres des utilisateurs et mettre à jour le dossier déjà présent en conséquence. Comme il peut mettre du code de plaque de chaudière dans le fichier ou ajouter une dépendance dans build.gradle etc à l'exécution.Générateur Yeoman pour ajouter dynamiquement du code

Par exemple I s'il invite l'utilisateur souhaite ajouter la dépendance bibliothèque pour le tissu, si oui, alors il appuyez sur la dépendance pour cette bibliothèque

compile('com.crashlytics.sdk.android:crashlytics:[email protected]') { transitive = true; }

doit être ajouté dans build.gradle et devrait ajouter le le code nécessite d'installer cette bibliothèque dans les fichiers nécessaires, comme la classe d'application méthode onCreate doit contenir

Fabric.with(this, new Crashlytics());

et Android.Manife st doit contenir

<meta-data android:name="io.fabric.ApiKey" android:value="your key">

Quelle est la meilleure façon d'y parvenir?

Merci

Répondre

1

Idéalement, vous voudriez analyser et modifier l'AST à partir de votre fichier source. Mais je ne sais pas si vous trouverez des analyseurs AST pour le code java (pour le code XML, cela devrait être facile).

const source = this.fs.read(this.destinationPath('file-to-modify.xml')); 
const manifest = parseXML(source); // any XML parser will work here 

// Here you write the code to modify the XML source 

this.fs.write(
    this.destinationPath('file-to-modify.xml'), 
    serializeXML(manifest) // with whichever XML serializer you want to use 
); 

Pour le code Java, s'il n'y a pas analyseur AST appropriée, vous pouvez toujours compter sur regex pour injecter les nouvelles lignes dans la chaîne de code d'une manière similaire à l'exemple xml.