tutorial - Maven project.build.directory
maven tutorial (3)
En Maven, ¿a qué se refiere project.build.directory
? Estoy un poco confundido, ¿hace referencia al directorio del código fuente o al directorio de destino en el proyecto Maven?
Apunta a su directorio de salida de nivel superior (que por defecto es "objetivo"):
http://docs.codehaus.org/display/MAVENUSER/MavenPropertiesGuide
EDITAR: Como se ha señalado, Codehaus ahora está tristemente difunto. Puede encontrar detalles sobre estas propiedades de Sonatype aquí:
Si alguna vez intentas hacer referencia a los directorios de salida en Maven, nunca deberías usar un valor literal como target / classes. En su lugar, debe usar las referencias de propiedad para referirse a estos directorios.
project.build.sourceDirectory project.build.scriptSourceDirectory project.build.testSourceDirectory project.build.outputDirectory project.build.testOutputDirectory project.build.directory
sourceDirectory, scriptSourceDirectory y testSourceDirectory proporcionan acceso a los directorios de origen para el proyecto. outputDirectory y testOutputDirectory proporcionan acceso a los directorios donde Maven va a poner bytecode u otro resultado de compilación. directorio se refiere al directorio que contiene todos estos directorios de salida.
Puede encontrar esas propiedades maven en el super pom.
Usted encuentra el tarro aquí:
${M2_HOME}/lib/maven-model-builder-3.0.3.jar
Abra el contenedor con 7-zip o algún otro archivador (o use la herramienta jar).
Navegar a
org/apache/maven/model
Allí encontrarás el pom-4.0.0.xml
.
Contiene todos esos "atajos":
<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>
Actualizar
Después de algunos cabildeos, agrego un enlace al pom-4.0.0.xml
. Esto le permite ver las propiedades sin abrir el archivo jar local.
Puede encontrar la respuesta más actualizada para el valor en su proyecto simplemente ejecute el
mvn3 help:effective-pom
ordene y encuentre el valor de la etiqueta <build> ... <directory>
en el resultado aka en el efectivo-pom. Mostrará el valor del Super POM a menos que haya sobrescrito.