7.1 Zmienne w Mavenie - właściwości

Często spotykane parametry Maven pozwala umieszczać w zmiennych. Jest to bardzo przydatne, gdy trzeba dopasować parametry w różnych częściach pliku pom. Na przykład możesz umieścić wersję Java, wersje bibliotek, ścieżki do określonych zasobów w zmiennej.

W tym celu istnieje specjalna sekcja w programie pom.xml – <properties>, w której deklarowane są zmienne. Ogólna postać zmiennej jest następująca:

<variable-name> _ _ _ _meaning< / variable name > _

Przykład:

<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>

Dostęp do zmiennych uzyskuje się przy użyciu innej składni:

$ { variable -name } _

Tam, gdzie taki kod jest napisany, Maven zastąpi wartość zmiennej.

Przykład:

<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 Predefiniowane zmienne w Maven

Opisując projekt w pliku pom, możesz użyć predefiniowanych zmiennych. Można je warunkowo podzielić na kilka grup:

  • Wbudowane właściwości projektu;
  • Właściwości projektu;
  • Ustawienia.

Istnieją tylko dwie wbudowane właściwości projektu:

Nieruchomość Opis
${oparteir} katalog główny projektu gdziepom.xml
${wersja} wersja artefaktu; można użyć ${project.version}lub${pom.version}

Do właściwości projektu można odwoływać się za pomocą przedrostków «project»lub «pom». Mamy ich cztery:

Nieruchomość Opis
${projekt.katalog.kompilacji} «target»katalog projektów
${project.build.outputDirectory} «target»katalog kompilatora. Domyślny«target/classes»
${nazwa.projektu} nazwa projektu
${projekt.wersja} wersja projektu

Dostęp do właściwości settings.xmlmożna uzyskać za pomocą przedrostka settings. Nazwy mogą być dowolne - są zaczerpnięte z settings.xml. Przykład:

${settings.localRepository} sets the path to the local repository.