Nous utilisons Buildr pour empaqueter une application en tant que fichier .war. Pour simplifier le processus de déploiement automatisé plus loin, je voudrais choisir conditionnellement l'un de ces deux fichiers (à partir du répertoire src/main/resources
) ...Comment conditionnellement inclure l'un des deux fichiers dans un package .war avec Buildr?
database-hsql.properties
database-postgres.properties
... et l'avoir inclus dans le .war résultant avec le nom database.properties
. (Au même endroit à l'intérieur de la guerre, à savoir WEB-INF/classes/
, où les fichiers de src/main/resources
finissent maintenant.)
Un moyen simple de faire cela? Toute approche serait bien — par exemple. paramétrage « package » (en quelque sorte) ou définir deux tâches différentes/cibles (je ne suis pas sûr de la terminologie) tels que « paquet-hsql » & « paquet-pgsql » — aussi longtemps que cela fonctionne et est assez simple.
Bits importants de buildfile
:
load 'dependencies'
require 'buildr/hibernate'
desc "..."
define "foo" do
project.version = VERSION_NUMBER
project.group = GROUP
manifest["Implementation-Vendor"] = COPYRIGHT
compile.with WICKET,GUAVA,GSON, ... [many more libs]
test.with MOCKITO
resources
test.compile.with SERVLET,_('src/main/webapp'),_('src/main/resources')
package(:war).with(:libs=> [WICKET,GUAVA,GSON, ... ])
end
Bonus question: comment exécuter une commande shell arbitraire (j'utiliser quelque chose qui implique par exemple >>
ou sed
) dans chacun des deux cas, d'apporter des modifications un autre fichier de configuration? (Je voudrais aussi "injecter" certains paramètres db à applicationContext.xml
à partir d'un autre fichier, ce serait préférable de garder deux copies de ce fichier dans VCS avec un contenu presque identique.)
Désolé, c'est trop basique; Je suis un débutant total avec Buildr, et je ne connais pas vraiment Ruby. (Et oui, ce n'est pas une situation optimale d'utiliser un outil dont aucun membre de l'équipe n'est compétent.) Si quelque chose a besoin d'être clarifié, veuillez le signaler!
Super, merci beaucoup! Je l'ai eu en utilisant l'approche "cp". (En ce moment je suis un peu pressé, mais plus tard le cas de bonus (applicationContext.xml) devrait vraiment être nettoyé, peut-être avec le mécanisme de filtre que vous mentionnez ...) – Jonik