web-dev-qa-db-fra.com

Maven: vue d'ensemble des valeurs des propriétés Maven

Je voudrais connaître les valeurs des propriétés all Maven telles qu'elles s'appliquent à certains projets Maven.
mvn help:system répertorie les variables d'environnement du système d'exploitation et les propriétés du système JVM, mais aucune propriété Maven.
mvn help:evaluate ne fonctionne qu'en mode interactif, cela signifie que je dois taper une seule propriété Maven (par exemple ${project.build.outputDirectory}) pour obtenir la valeur de cette propriété.

Je cherche un moyen d'obtenir une liste complète de toutes les propriétés Maven et de leurs valeurs.

35
Abdull

Pour contourner ce problème, ajoutez ceci au <plugins> ... </plugins> section à l'intérieur de votre projet pom.xml:

<plugin>
  <groupId>org.Apache.maven.plugins</groupId>
  <artifactId>maven-antrun-plugin</artifactId>
  <version>1.7</version>
  <executions>
    <execution>
      <phase>validate</phase>
      <goals>
        <goal>run</goal>
      </goals>
      <configuration>
        <tasks>
          <echoproperties />
        </tasks>
      </configuration>
    </execution>
  </executions>
</plugin>

Maintenant, exécutez mvn validate.
Sur la console, précédé de [echoproperties], il y aura la liste complète des propriétés du système, y compris celles définies par Maven telles que project.build.outputDirectory, basedir et settings.localRepository.

47
Abdull

Je ne sais pas si cela aide, mais j'ai trouvé cela en essayant de faire la même chose:

mvn com.github.ekryd.echo-maven-plugin:echo-maven-plugin:echo -Decho.message='${project.build.testOutputDirectory}'

De ici

1
fhiegel

Je ne sais pas comment les obtenir "officiellement", mais voici une solution de contournement. Ajouter maven-antrun-plugin à votre projet et exécutez mvn test -X. Le plugin affichera toutes les propriétés qui lui sont transmises par Maven. La liste me semble complète.

1
yegor256

En fait, project.build.outputDirectory est là mais vous devez l'exécuter en phase de "compilation", et NON en "valider". Je suppose que les propriétés disponibles dépendent également de la phase actuelle pour l'objectif d'exécution d'un plug-in particulier, dans ce cas "maven-antrun-plugin".

            <!-- Ant Run Plugin for debugging pom.xml and calling ant tasks -->
        <plugin>
            <groupId>org.Apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>${ant.plugin.version}</version>
            <executions>
                <execution>
                    <phase>compile</phase>
                    <goals>
                        <goal>run</goal>
                    </goals>
                    <configuration>
                        <tasks>
                            <echoproperties/>
                        </tasks>
                    </configuration>
                </execution>
            </executions>
        </plugin>
0
George Smith