カスタムプロパティや変数は、Mavenの `pom.xml`ファイルを読みやすく保守しやすくするのに便利です。


File:pom.xml

<project>
...

<プロパティ>
     <my.plugin.version> 1.5 </my.plugin.version>
  </properties>
...
</project>

上記の

pom.xml`では、コード

$ {my.plugin.version} ‘を使って “my.plugin.version”を参照することができます。

例1

古典的なユースケースは、jarまたはプラグインのバージョンを定義するために使用されます。

    <properties>
        <spring.version>3.1.2.RELEASE</spring.version>
    </properties>

    <dependencies>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>

    </dependencies>

Springを3.1.5にアップグレードする場合は、 “spring.version”を3.1.5に変更するだけで、すべての依存関係が影響を受けます。

例2

別の一般的な使用例は、長いファイルパスを定義するために使用されます。

<properties>
    <project.theme.name>default</project.theme.name>
    <project.resources.build.folder>
        ${project.build.directory}/temp-resources/${project.theme.name}/    </project.resources.build.folder>
</properties>

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.5</version>
    <executions>
      <execution>
        <id>copy-resources</id>
        <goals>
        <goal>copy-resources</goal>
        </goals>
        <configuration>
        <outputDirectory>
                 ${project.resources.build.folder}
            </outputDirectory>
       //...