3

私たちのアプリケーションには、ホワイトラベルを付けるシステムがあります。

設定がapplication.propertiesありますtheme=default

この設定は Spring マネージド Bean に注入され、適切な CSS の追加など、フレームワークを介してアプリの操作を行います。

私ができるようにしたいのは、ビルド時(戦争の作成)で、テーマを指定することmvn clean install -theme:some-themeです。これは更新application.propertiesされ、変更theme され、すぐに実行したmvn clean install場合theme=defaultまたはunmodified

これは可能ですか?

4

2 に答える 2

7

コマンドラインからプロパティを設定する適切な方法は、次を使用すること-Dです。

mvn -Dproperty=value clean package

で以前に定義されたプロパティを上書きpom.xmlします。


あなたが持っている場合pom.xml

<properties>
    <theme>myDefaultTheme</theme>
</properties>

mvn -Dtheme=halloween clean packagethemeこの実行中に s 値を上書きし、次のような効果があります。

<properties>
    <theme>halloween</theme>
</properties>
于 2013-05-14T12:16:00.410 に答える
2

あなたが探しているのは maven build profiles とresource filteringだと思います。各テーマにプロファイルを割り当てることができ、プロファイルに基づいて、application.properties のパラメーターの値を変更できます。

例えば

<build>

    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>

    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.1</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
    </plugins>
</build>

<profiles>
    <profile>
        <id>white</id>
        <properties>
            <theme>white</theme>
            <prop1>xyz</prop1>
            <!--and some other properties-->
        </properties>
    </profile>

    <profile>
        <id>default</id>
        <properties>
            <theme>default</theme>
            <prop1>abc</prop1>
            <!--and some other properties-->
        </properties>
    </profile>
</profiles>

また、プロパティ ファイルを src/main/resources に配置できます。

アプリケーションのプロパティ:

my.theme=${theme}
my.custom.property=${prop1}

このアプローチにより、プロファイルに基づいてカスタマイズを行う柔軟性が得られるため、一括カスタマイズと言えます。

于 2013-05-14T12:22:56.323 に答える