web-dev-qa-db-fra.com

Maven project.build.directory

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?

151
faisal abdulai

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>

Mettre à jour

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.

199
maba

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:

_ { http://books.sonatype.com/mvnref-book/reference/resource-filtering-sect-properties.html#resource-filtering-sect-project-properties }

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.

39
sdouglass

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é.

1
Verhás István