1. 概要

この短いチュートリアルでは、コマンドラインを使用してMavenに引数を渡す方法を見ていきます。

2. Mavenプロパティ 

Mavenプロパティは値のプレースホルダーです。 まず、pom.xmlファイルのpropertiesタグの下でそれらを定義する必要があります。

<properties>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <start-class>com.example.Application</start-class>
    <commons.version>2.5</commons.version>
</properties>

次に、それらを他のタグ内で使用できます。 たとえば、この場合、commons-io依存関係で「commons.version」値を使用します。

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>{commons.version}</version>
</dependency>

実際、これらのプロパティはpom.xml、 build package pluginセクションなどのどこでも使用できます。 。

3. プロパティのプレースホルダーを定義する

開発時に物件の価値がわからない場合があります。 この場合、構文 $ {some_property} を使用して、値の代わりにプレースホルダーを残すことができ、Mavenは実行時にプレースホルダー値をオーバーライドしますCOMMON_VERSION_CMDのプレースホルダーを設定しましょう。

<properties>
    <maven.compiler.source>1.7</maven.compiler.source>
    <commons.version>2.5</commons.version>
    <version>${COMMON_VERSION_CMD}</version>
</properties>

4. Mavenに引数を渡す

それでは、たとえば package コマンドを使用して、通常どおりにターミナルからMavenを実行してみましょう。 ただし、この場合は、-Dという表記の後にプロパティ名を追加します。

mvn package -DCOMMON_VERSION_CMD=2.5

Mavenは、引数として渡された値(2.5)を使用して、pom.xmlで設定されたCOMMON_VERSION_CMDプロパティを置き換えます。 これはpackageコマンドに限定されません— install test 、またはtestなどのMavenコマンドと一緒に引数を渡すことができますビルド

5. 結論

この記事では、コマンドラインからMavenにパラメーターを渡す方法について説明しました。 このアプローチを使用することにより、 pom.xml または静的構成を変更する代わりに、プロパティを動的に提供できます。