passer une java paramètre de maven
J'ai besoin pour exécuter quelques tests avec maven, et de passer un paramètre en ligne de commande.
Mon code java doit obtenir le paramètre:
Système.la fonction getenv("my_parameter1");
et je définir le paramètre dans la pom.xml fichier comme dans l'exemple ci-dessous:
(et dernier, j'avais modifier le pom.xml pour obtenir le paramètre de la ligne commune mvn clean install-Dmy_parameter1=valeur1)
mais il ne fonctionne pas; le Système.la fonction getenv("my_parameter1") renvoie la valeur null.
comment dois-je définir le paramètre dans la pom.xml fichier?
pom.xml
<project>
...
<profiles>
<profile>
<properties>
<my_parameter1>value1</my_parameter1>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<executions>
<execution>
<id>slowTest</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<skip>false</skip>
<includes>
<include>**/*Test.java</include>
<include>**/*TestSlow.java</include>
</includes>
<properties>
<my_parameter1>value1</my_parameter1>
</properties>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
OriginalL'auteur David Portabella | 2012-03-08
Vous devez vous connecter pour publier un commentaire.
Système.la fonction getenv() lit variables d'environnement, comme
PATH
. Ce que vous voulez est de lire un système de la propriété à la place. L'-D[système de la propriété name]=[valeur] est pour les propriétés système, pas les variables d'environnement.Vous avez deux options:
Si vous souhaitez utiliser des variables d'environnement, utilisez le système d'exploitation spécifique à la méthode de la définition de la variable d'environnement
my_parameter1
avant de vous lancer Maven. Dans Windows, utilisezset my_parameter1=<value>
, dans 'nix utilisationexport my_parameter1=<value>
.Vous pouvez utiliser Système.getProperty() à lire le système de valeur de la propriété au sein de votre code.
exemple:
En vous plugin surefire de configuration, vous pouvez utiliser:
Qui prend le Maven propriété _my_property1_ et il définit également dans vos tests.
Plus de détails sur cette ici.
Je ne suis pas sûr si les propriétés du système de Maven sont automatiquement transmis à des tests et/ou si la fourche mode affecte si cela se produit, donc c'est probablement une bonne idée de les faire passer explicitement.
OriginalL'auteur prunge
Utilisation
pour accéder à la variable d'environnement dans le pom.xml.
Vous pouvez utiliser le plugin pour voir les variables qui sont définies avec
Cependant, la propriétés de l'utilisation de trop de travail. Dans le contexte large cependant, je me demande... que voulez-vous faire? Il y a peut être une solution plus simple.
OriginalL'auteur Manfred Moser
Le maven plugin surefire a aussi un option pour définir des variables d'environnement, il suffit d'ajouter ceci à votre configuration du plugin.
Je pense que cela nécessite que le plugin fonctionne en fourche mode, qui est la valeur par défaut.
OriginalL'auteur Jörn Horstmann