Worauf bezieht sich das in Maven project.build.directory? Ich bin etwas verwirrt. Verweist es auf das Quellcodeverzeichnis oder das Zielverzeichnis im Maven-Projekt?
Worauf bezieht sich das in Maven project.build.directory? Ich bin etwas verwirrt. Verweist es auf das Quellcodeverzeichnis oder das Zielverzeichnis im Maven-Projekt?
Antworten:
Sie finden diese Maven-Eigenschaften im Super Pom.
Das Glas finden Sie hier:
${M2_HOME}/lib/maven-model-builder-3.0.3.jar
Öffnen Sie das Glas mit 7-zip oder einem anderen Archivierungsprogramm (oder verwenden Sie das Glaswerkzeug).
Navigieren Sie zu
org/apache/maven/model
Dort finden Sie die pom-4.0.0.xml.
Es enthält all diese "Abkürzungen":
<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>
Nach einigem Lobbying füge ich einen Link zum hinzupom-4.0.0.xml . Auf diese Weise können Sie die Eigenschaften anzeigen, ohne die lokale JAR-Datei zu öffnen.
project.build.directoryzum Beispiel. Das wollte ich zeigen.
Es zeigt auf Ihr Ausgabeverzeichnis der obersten Ebene (standardmäßig target):
EDIT: Wie bereits erwähnt, ist Codehaus jetzt leider nicht mehr vorhanden. Details zu diesen Eigenschaften von Sonatype finden Sie hier:
Wenn Sie jemals versuchen, Ausgabeverzeichnisse in Maven zu referenzieren, sollten Sie niemals einen Literalwert wie target / classes verwenden . Stattdessen sollten Sie Eigenschaftsreferenzen verwenden, um auf diese Verzeichnisse zu verweisen.
project.build.sourceDirectory project.build.scriptSourceDirectory project.build.testSourceDirectory project.build.outputDirectory project.build.testOutputDirectory project.build.directory
sourceDirectory,scriptSourceDirectoryUndtestSourceDirectoryfür das Projekt Zugriff auf die Quellverzeichnisse bieten.outputDirectoryundtestOutputDirectoryZugriff auf die Verzeichnisse gewähren, in denen Maven Bytecode oder andere Build-Ausgaben ablegen wird.directorybezieht sich auf das Verzeichnis, das alle diese Ausgabeverzeichnisse enthält.
project.base.dirverweist also auf das Stammverzeichnis des Projekts, in dem sich die Datei pom.xml befindet. Deshalb wird danach project.build.directoryvon Maven definiert ${project.basedir}/target. Danke Jungs, das wusste ich nicht.
${project.build.sourceDirectory}auf project-A/src/main/java, ${project.build.scriptSourceDirectory}zeigt auf project-A/src/main/scripts, ${project.build.testSourceDirectory}zeigt auf project-A/src/test/java, ${project.build.directory}zeigt auf project-A/target, ${project.build.directory}zeigt auf project-A/target/classes, ${project.build.testOutputDirectory}zeigt auf project-A/target/test-classes.
Sie können die aktuellste Antwort für den Wert in Ihrem Projekt finden. Führen Sie einfach die aus
mvn3 help:effective-pom
befehle und finde den <build> ... <directory>Wert des Tags im Ergebnis, auch bekannt als im effektiven POM. Der Wert des Super-POM wird angezeigt, sofern Sie ihn nicht überschrieben haben.