10
votes

Comment identifier et définir une propriété de l'environnement manquant à Maven?

J'ai mon établissement de construction afin que je passe dans ma variable via la ligne de commande: xxx

dans mon pom j'ai: xxx

Cela fonctionne bien, mais j'aimerais identifier si quelqueevariable n'est pas spécifié sur la ligne de commande, puis de la défaut de sorte que mon script puisse continuer.

peut-il être fait à Maven? < / p>


0 commentaires

3 Réponses :


14
votes

Vous pouvez spécifier la valeur de la propriété par défaut dans la section CODE> Propriétés CODE> de votre fichier POM:

<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>1.0.1</version>
        <executions>
          <execution>
            <id>enforce-property</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requireProperty>
                  <property>basedir</property>
                  <message>You must have a basedir!</message>
                  <regex>\d</regex>
                  <regexMessage>You must have a digit in your baseDir!</regexMessage>
                </requireProperty>
                <requireProperty>
                  <property>project.version</property>
                  <message>"Project version must be specified."</message>
                  <regex>(\d|-SNAPSHOT)$</regex>
                  <regexMessage>"Project version must end in a number or -SNAPSHOT."</regexMessage>
                </requireProperty>
              </rules>
              <fail>true</fail>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  [...]
</project>


2 commentaires

Merci pour la réponse perspicace Alex. Bien que je cherche à défaut la propriété plutôt que de l'appliquer. Donc, si ce n'est pas spécifié, le script utiliserait la valeur par défaut.


@Teracyte. Oui, une valeur de la section Propriétés est une valeur par défaut et vous pouvez toujours l'écraser à partir de la ligne de commande.



2
votes

Vous pouvez utiliser des profils à la place, mais vous aurez besoin d'un profil pour chaque variable.

 <profile>
    <id>default-value-1</id>
    <activation>
          <activeByDefault>false</activeByDefault>
          <property>
             <name>!someVariable</name>
          </property>
    </activation>
    <properties>
        <someVariable>DEFAULT-VALUE</someVariable>
    </properties>
</profile>


0 commentaires

7
votes

Vous pouvez spécifier la valeur par défaut comme xxx

lorsque vous exécutez la commande Maven, vous pouvez remplacer cette valeur comme celle-ci xxx


1 commentaires

Solution simple dont j'avais besoin d'utiliser dans une construction Jenkins