Tester l’égalité de 2 variables sous Maven

Publié dans Java | Marqué avec
Share

Instinctivement pour tester l’égalité de deux variables sous Maven, moi j’écrirai :

<j:if test="${var1 == var2}">
	<echo message="var1 égale var2" />
</j:if>

Mais visiblement sous Maven, ça ne marche pas comme ça ! Le code suivant renverra un résultat pour le moins aléatoire. Du coup, en réfléchissant et en parcourant la Toile (qui est très pingre à ce sujet), je me suis mis à écrire :

<j:if test="${var1.equals(var2)}">
	<echo message="var1 égale var2" />
</j:if>
<j:if test="${var1.equals('test')}">
	<echo message="var1 égale 'test'" />
</j:if>

Et la, ahah : ça marche ! Pour comparer deux variables ou une variable et une valeur.
Pour comparer deux valeurs, il faut se rabattre sur le classique :

<j:if test="${'valeur1' == 'valeur2'}">
	<echo message="valeur1 égale valeur2" />
</j:if>

Et pour comparer deux variables dont la première contient des points (ex : « ma.variable ») : bah on peut pas. Il faut renommer sa variable sans point. Bizarre, mais c’est le seule solution que j’ai trouvé pour l’instant.

<j:set var="maVariable" value="${ma.variable}" />
<j:if test="${maVariable.equals('test')}">
	<echo message="ma.variable égale 'test'" />
</j:if>

Et voilà le travail ! Pour information, j’utilise ici le plugin jelly:core, je l’ai donc déclaré au début de mon fichier pom.xml :

<project  xmlns:j="jelly:core">...</project>

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *