2010-11-25 31 views
1

Le problème que nous avons sont les suivants:La génération de propriétés ANT à plusieurs valeurs est-elle possible?

Nous utilisons ANT pour construire notre application. Cependant, l'application est construite plusieurs fois, une fois pour chaque client (ils ont différents skins/cms/i18n etc). Jusqu'à présent, nous n'avions pas besoin de les compiler tous en même temps (en général, il suffit de travailler sur un client à la fois). Maintenant, nous voulons que notre serveur de construction construise toutes les permutations pour tous les clients dans toutes les langues. En d'autres termes, nous devons créer un fichier war pour chaque client, chacun contenant sa propre compilation.

Pour l'instant, le nom du client est lu à partir du fichier .properties de l'application.

Ma question est la suivante. Est-il possible que la propriété client.name (à partir de .properties de l'application) soit remplacée dans le build.xml utilisé par ant? Ou est le seul moyen de créer un target différent pour chaque client et de coder en dur le nom?

Merci.

Répondre

2

Si vous utilisez Hudson pour faire votre build, et avez plus d'un paramètre à changer, vous devriez être capable de faire un Matrix Build. Il y a plus de détails dans la réponse this. Si c'est juste un paramètre, vous devriez être capable de faire un fichier de propriétés et utiliser Ant pour lire ce fichier de propriétés et le parcourir - Je ne sais pas exactement comment, mais vous ne serez pas la première personne d'avoir ce problème, et si vous l'êtes, il ne serait pas difficile de créer votre propre tâche. Ou sinon, utilisez des macros.

+0

Merci. Nous utilisons Hudson. Regardera dedans à ceci. –

+0

Malheureusement, cela ne fonctionnera pas pour nous. L'utilisation des builds Matrix lancera la construction entière pour chaque client. Nos tests unitaires prennent beaucoup de temps, et nous ne voulons pas les exécuter pour chaque client, car rien de fonctionnel ne diffère entre eux. –

+0

Évidemment, je ne connais pas votre configuration de build, mais vous devriez être capable d'avoir deux builds, le premier est "Test Project" qui exécute vos tests, le second est "Matrix Project" qui exécute vos permutations. Le second projet peut être une dépendance sur le premier, et ne fonctionnera donc que si les tests réussissent ou si la construction est réussie ou un autre critère. – Rich