5

プロファイルごとの maven プロパティの問題に直面しています。私は 2 つのプロファイルを持っています。それぞれに、異なる値を持つ同じプロパティ「prop.key」があります。私が呼び出すときmvn clean package -PA -PB、またはmvn clean package -PB -PA両方が同じ値 ' B-1.0-SNAPSHOT ' を使用しています。私はMaven 3.0.4を使用しています。

私のPOMの下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.test.module</groupId>
    <artifactId>test-module</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>pom</packaging>
    <properties>
        <prop.key>UNKNOWN</prop.key>
    </properties>

    <profiles>
        <profile>
            <id>A</id>
            <properties>
                <prop.key>A-${project.version}</prop.key>
            </properties>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <version>1.2</version>
                        <executions>
                            <execution>
                                <id>A</id>
                                <phase>package</phase>
                                <configuration>
                                    <tasks name="a" description="a-desc">
                                        <echo message="RUN A = ${prop.key}" level="info"/>
                                    </tasks>
                                </configuration>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <id>B</id>
            <properties>
                <prop.key>B-${project.version}</prop.key>
            </properties>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <version>1.2</version>
                        <executions>
                            <execution>
                                <id>B</id>
                                <phase>package</phase>
                                <configuration>
                                    <tasks name="b" description="b-desc">
                                        <echo message="RUN B = ${prop.key}" level="info"/>
                                    </tasks>
                                </configuration>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>

「類似トピック」を見つけましたが、反対の結果になりました! それはバグですか、それともmavenの機能ですか?

4

3 に答える 3

0

プロファイルの最後のパラメーターが選択されるため、この動作が発生すると思います。試す

mvn clean package -PA,B

Maven のプロファイルの紹介 を参照してください。

-P CLI オプションを使用して、プロファイルを明示的に指定できます。

このオプションは、使用するプロファイル ID のコンマ区切りリストである引数を取ります。このオプションを指定すると、オプション引数で指定されたプロファイル以外はアクティブになりません。

于 2013-06-03T12:29:47.600 に答える