Dans Maven, à quoi le project.build.directory
fait-il référence? Je suis un peu confus, est-ce que cela référence le répertoire du code source ou le répertoire cible du projet Maven?
Vous pouvez trouver ces propriétés maven dans le super pom.
Vous trouvez le pot ici:
${M2_HOME}/lib/maven-model-builder-3.0.3.jar
Ouvrez le bocal avec 7-Zip ou un autre archiveur (ou utilisez l'outil bocal).
Aller vers
org/Apache/maven/model
Vous y trouverez le pom-4.0.0.xml
.
Il contient tous ces "raccourcis":
<project>
...
<build>
<directory>${project.basedir}/target</directory>
<outputDirectory>${project.build.directory}/classes</outputDirectory>
<finalName>${project.artifactId}-${project.version}</finalName>
<testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory>
<sourceDirectory>${project.basedir}/src/main/Java</sourceDirectory>
<scriptSourceDirectory>src/main/scripts</scriptSourceDirectory>
<testSourceDirectory>${project.basedir}/src/test/Java</testSourceDirectory>
<resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
</resource>
</resources>
<testResources>
<testResource>
<directory>${project.basedir}/src/test/resources</directory>
</testResource>
</testResources>
...
</build>
...
</project>
Après un peu de lobbying, j'ajoute un lien au pom-4.0.0.xml
. Cela vous permet de voir les propriétés sans ouvrir le fichier jar local.
Il pointe vers votre répertoire de sortie de niveau supérieur (qui est par défaut "cible"):
_ { http://docs.codehaus.org/display/MAVENUSER/MavenPropertiesGuide } _
EDIT: Comme il a été souligné, Codehaus est maintenant malheureusement disparu. Vous pouvez trouver des détails sur ces propriétés à partir de Sonatype ici:
Si vous essayez de référencer des répertoires de sortie dans Maven, vous ne devez jamais utiliser une valeur littérale telle que cible/classes. Au lieu de cela, vous devez utiliser des références de propriété pour faire référence à ces répertoires.
project.build.sourceDirectory project.build.scriptSourceDirectory project.build.testSourceDirectory project.build.outputDirectory project.build.testOutputDirectory project.build.directory
sourceDirectory, scriptSourceDirectory et testSourceDirectory fournissent un accès aux répertoires source du projet. outputDirectory et testOutputDirectory fournissent un accès aux répertoires dans lesquels Maven va mettre du code intermédiaire ou une autre sortie de construction. répertoire fait référence au répertoire qui contient tous ces répertoires de sortie.
Vous pouvez trouver la réponse la plus récente pour la valeur de votre projet en exécutant simplement
mvn3 help:effective-pom
commande et trouve la valeur de la balise <build> ... <directory>
dans le résultat, également dans effect-pom. Il montrera la valeur du Super POM sauf si vous avez écrasé.