So che esiste un elenco di tutte le proprietà Maven predefinite (sai come project.build.sourceEncoding
, o project.build.sourceDirectory
). Una volta ho visto l'elenco ma non riesco a trovarlo di nuovo.
So che esiste un elenco di tutte le proprietà Maven predefinite (sai come project.build.sourceEncoding
, o project.build.sourceDirectory
). Una volta ho visto l'elenco ma non riesco a trovarlo di nuovo.
Risposte:
Intendi questo?
Ho anche spostato il suo contenuto in un repository GitHub:
https://github.com/cko/predefined_maven_properties/blob/master/README.md
[WARNING] The expression ${artifactId} is deprecated. Please use ${project.artifactId} instead.
ma include la maggior parte;)
Dai un'occhiata alla sezione 9.2 .: Maven Proprietà del libro online gratuito Maven: The Complete Reference .
Guardare il "POM efficace" probabilmente aiuterà anche. Ad esempio, se volessi sapere a cosa serve il percorso${project.build.sourceDirectory}
troverai il codice XML correlato nel POM effettivo, come ad esempio:
<project>
<build>
<sourceDirectory>/my/path</sourceDirectory>
Utile anche: è possibile eseguire una valutazione in tempo reale delle proprietà tramite l'esecuzione da riga di comando mvn help:evaluate
nella stessa directory del POM.
Penso che il posto migliore dove cercare sia il Super POM .
Ad esempio, al momento della scrittura, il riferimento collegato mostra alcune delle proprietà tra le righe 32 - 48.
L'interpretazione di questo è di seguire XPath come .
proprietà delimitata.
Quindi, per esempio:
${project.build.testOutputDirectory}
== ${project.build.directory}/test-classes
E:
${project.build.directory}
== ${project.basedir}/target
Combinandoli così, troviamo:
${project.build.testOutputDirectory}
== ${project.basedir}/target/test-classes
(Per fare riferimento alle directory delle risorse, vedere questa domanda di StackOverflow )
<project>
<modelVersion>4.0.0</modelVersion>
.
.
.
<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>
Mi sono stancato di vedere questa pagina con i suoi riferimenti ormai obsoleti alle pagine defunte di Codehaus, quindi ho chiesto alla mailing list degli utenti di Maven e ho ottenuto alcune risposte più aggiornate.
Direi che la risposta migliore (e più autorevole) contenuta nel mio link sopra è quella fornita da Hervé BOUTEMY:
ecco il riferimento principale: http://maven.apache.org/ref/3-LATEST/maven-model-builder/
non spiega tutto ciò che può essere trovato in POM o nelle impostazioni, poiché ci sono così tante informazioni disponibili ma fa riferimento a POM e ai descrittori delle impostazioni e spiega tutto ciò che non è POM o impostazioni
Questo link mostra come elencare tutte le proprietà attive: http://skillshared.blogspot.co.uk/2012/11/how-to-list-down-all-maven-available.html
In breve, aggiungi la seguente definizione di plugin al tuo POM, quindi esegui mvn install
:
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<phase>install</phase>
<configuration>
<target>
<echoproperties />
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
${...}
)