En Maven, ¿a qué se project.build.directory
refiere? Estoy un poco confundido, ¿hace referencia al directorio del código fuente o al directorio de destino en el proyecto Maven?
En Maven, ¿a qué se project.build.directory
refiere? Estoy un poco confundido, ¿hace referencia al directorio del código fuente o al directorio de destino en el proyecto Maven?
Respuestas:
Puedes encontrar esas propiedades maven en el súper pom.
Encuentra el frasco aquí:
${M2_HOME}/lib/maven-model-builder-3.0.3.jar
Abra el frasco con 7-zip o algún otro archivador (o use la herramienta de frasco).
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>
Después de algunos grupos de presión, estoy agregando un enlace alpom-4.0.0.xml
. Esto le permite ver las propiedades sin abrir el archivo jar local.
project.build.directory
por ejemplo. Eso es lo que quería mostrar.
Apunta a su directorio de salida de nivel superior (que por defecto es target
):
EDITAR: Como se ha señalado, Codehaus ahora está tristemente difunto. Puede encontrar detalles sobre estas propiedades en Sonatype aquí:
Si alguna vez intenta hacer referencia a directorios de salida en Maven, nunca debe usar un valor literal como target / classes . En su lugar, debe usar 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
ytestSourceDirectory
proporcionar acceso a los directorios de origen para el proyecto.outputDirectory
ytestOutputDirectory
proporcionar acceso a los directorios donde Maven va a colocar bytecode u otra salida de compilación.directory
se refiere al directorio que contiene todos estos directorios de salida.
project.base.dir
apunta al directorio raíz del proyecto donde está pom.xml. Es por eso que después de eso, project.build.directory
definido por Maven es ${project.basedir}/target
. Gracias chicos, no sabía esto.
${project.build.sourceDirectory}
apunta a project-A/src/main/java
, ${project.build.scriptSourceDirectory}
puntos a project-A/src/main/scripts
, ${project.build.testSourceDirectory}
puntos a project-A/src/test/java
, ${project.build.directory}
puntos a project-A/target
, ${project.build.directory}
puntos a project-A/target/classes
, ${project.build.testOutputDirectory}
puntos a project-A/target/test-classes
.
Puede encontrar la respuesta más actualizada para el valor en su proyecto simplemente ejecute el
mvn3 help:effective-pom
ordenar y encontrar el <build> ... <directory>
valor de etiqueta en el resultado, también conocido en el pom efectivo Mostrará el valor del Super POM a menos que lo haya sobrescrito.