En Maven, ¿a qué se project.build.directoryrefiere? 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.directoryrefiere? 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.directorypor 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,scriptSourceDirectoryytestSourceDirectoryproporcionar acceso a los directorios de origen para el proyecto.outputDirectoryytestOutputDirectoryproporcionar acceso a los directorios donde Maven va a colocar bytecode u otra salida de compilación.directoryse refiere al directorio que contiene todos estos directorios de salida.
project.base.dirapunta al directorio raíz del proyecto donde está pom.xml. Es por eso que después de eso, project.build.directorydefinido 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.