9
votes

Web.xml spécifique à l'environnement dans Grails?

Quelle est la meilleure façon de créer des entrées web.xml spécifiques à l'environnement spécifiques à l'environnement dans GRAVES?

Je dois faire certaines modifications pour la production uniquement, car elles rompent fonctionnant localement.

Toutes les pensées?


0 commentaires

3 Réponses :


0
votes

Je n'ai jamais essayé, mais devrait être être possible de spécifier le greils.config.base.webxml paramètre dans buildconfig.groovy dépend de l'environnement actuel.

Il y a un Liste des paramètres de buildconfig disponibles ici


Modifier

En fait, en raison de ce problème , ce n'est pas un moyen de transmettre :-( peut-être passer la propriété comme: xxx

est tout ce qui est possible?


0 commentaires

15
votes

Vous pouvez créer scripts / _events.groovy code> avec un gestionnaire d'événements pour l'événement "webxmend" déclenché une fois des greils et les plugins ont fini de faire leurs modifications. Mettez à jour le XML avec la recherche simple / remplacer ou via des méthodes DOM en analysant le fichier XML et écrivez le fichier mis à jour:

import grails.util.Environment

eventWebXmlEnd = { String filename ->

   if (Environment.current != Environment.PRODUCTION) {
      return
   }

   String content = webXmlFile.text

   // update the XML
   content = ...

   webXmlFile.withWriter { file -> file << content }
}


0 commentaires

8
votes

Voici la solution que j'utilise, du gars sur la mort-head.ch

d'abord installer les modèles xxx

puis personnaliser le web.xml Vous trouverez dans src / modèles / war / web.xml . J'ai choisi de faire un web_dev.xml et a web_prod.xml et supprimer le web.xml . Je voulais web_prod.xml pour contenir un bloc de contrainte de sécurité. de toute façon ...

Placez ce qui suit dans buildconfig.groovy : xxx

bonne chance!


1 commentaires

Cela fonctionne bien. Au lieu d'utiliser "$ {system.geproperty ('greils.env')}" i lue de greils.util.environment.getcurrent (). GetName () dans GRAVES 2.2.0