1. ホーム
  2. maven-2

[解決済み] 親ディレクトリを示すMaven2プロパティ

2022-08-26 20:15:16

質問

このような複数モジュールのプロジェクトがあります。

main-project/
    module1/
    module2/
        sub-module1/
        sub-module2/
        sub-module3/
        ...
    module3/
    module4/
    ...

私はMaven2で(私のプロジェクトをリリースしたい環境に依存する)プロパティのセットを定義する必要があります。 私は <properties> は使用しません。 したがって、私は プロパティ Maven2 プラグイン .

プロパティファイルは main-project/ ディレクトリにあります。 プロパティファイルがどこにあるか子プロセスに指定するために、メインの pom.xml で正しいディレクトリを設定するにはどうすればよいでしょうか。

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>properties-maven-plugin</artifactId>
    <version>1.0-alpha-1</version>
    <executions>
        <execution>
            <phase>initialize</phase>
            <goals>
                <goal>read-project-properties</goal>
            </goals>
            <configuration>
                <files>
                    <file>???/env_${env}.properties</file>
                </files>
            </configuration>
        </execution>
    </executions>
</plugin>

のみを設定した場合 <file>env_${env}.properties</file> を設定した場合、Maven2 が最初のモジュールをコンパイルする際に main-project/env_dev.properties ファイルを見つけられません。もし私が <file>../env_${env}.properties</file> を設定した場合、親レベル、またはサブモジュールレベルでエラーが発生します...

どのように解決するのですか?

各pomにメインプロジェクトディレクトリを見つけるためのプロパティを設定してみてください。

親に

<properties>
    <main.basedir>${project.basedir}</main.basedir>
</properties>

子供たちの中に

<properties>
    <main.basedir>${project.parent.basedir}</main.basedir>
</properties>

孫の手では

<properties>
    <main.basedir>${project.parent.parent.basedir}</main.basedir>
</properties>