7.1 Variabili in Maven - proprietà
Parametri incontrati di frequente Maven ti consente di inserire variabili. Questo è molto utile quando devi abbinare i parametri in diverse parti del file pom. Ad esempio, puoi inserire la versione Java, le versioni della libreria, i percorsi di determinate risorse in una variabile.
Per questo, c'è una sezione speciale in pom.xml – <properties>
, in cui vengono dichiarate le variabili. La forma generale della variabile è la seguente:
<variable-name> _ _ _ _meaning< / variable name > _
Esempio:
<properties>
<junit.version>5.2</junit.version>
<project.artifactId>new-app</project.artifactId>
<maven.compiler.source>1.13</maven.compiler.source>
<maven.compiler.target>1.15</maven.compiler.target>
</properties>
Le variabili sono accessibili utilizzando una sintassi diversa:
$ { variable -name } _
Dove tale codice è scritto, Maven sostituirà il valore della variabile.
Esempio:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
</build>
7.2 Variabili predefinite in Maven
Quando si descrive un progetto in un file pom, è possibile utilizzare variabili predefinite. Possono essere suddivisi condizionatamente in diversi gruppi:
- Proprietà del progetto integrate;
- Proprietà del progetto;
- Impostazioni.
Ci sono solo due proprietà del progetto predefinite:
Proprietà | Descrizione |
---|---|
${basato} | directory principale del progetto dovepom.xml |
${versione} | versione artefatto; può essere utilizzato ${project.version} o${pom.version} |
È possibile fare riferimento alle proprietà del progetto utilizzando i prefissi «project»
o «pom»
. Ne abbiamo quattro:
Proprietà | Descrizione |
---|---|
${project.build.directory} | «target» directory del progetto |
${project.build.outputDirectory} | «target» directory del compilatore. Predefinito«target/classes» |
${nome.progetto} | nome del progetto |
${progetto.versione} | versione del progetto |
settings.xml
È possibile accedere alle proprietà utilizzando il prefisso settings
. I nomi possono essere qualsiasi cosa: sono presi da settings.xml
. Esempio:
${settings.localRepository} sets the path to the local repository.