0

私はここで非常にばかげた問題に直面しています.warファイルを構築するために使用されています.別の環境で動作するようにpom.xml導入しました.しかし問題は、ビルドを作成するときに、下にあるプロファイルの正しいビルドディレクトリを作成することです.注文するprofile(dev/prod)pom.xml

ここで何が問題なのか支援してください。

 <build>
    <pluginManagement>
        <plugins>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>

        </plugins>
    </pluginManagement>
</build>

<profiles>
    <profile>
        <activation>
            <property>
                <name>lifecycle</name>
                <value>prod</value>
            </property>
        </activation>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-war-plugin</artifactId>
                        <version>2.1.1</version>
                        <configuration>
                            <warSourceExcludes>**login.jsp</warSourceExcludes>
                        </configuration>
                </plugin>
            </plugins>
            <directory>target/${lifecycle}</directory>
            <finalName>testapp</finalName>
            <resources>
               <resource>
                <directory>src/main/resources/${lifecycle}</directory>
               </resource>
            </resources>
        </build>
    </profile>
    <profile>
        <activation>
            <property>
                <name>lifecycle</name>
                <value>dev</value>
            </property>
        </activation>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-war-plugin</artifactId>
                        <version>2.1.1</version>
                </plugin>
            </plugins>
            <directory>target/${lifecycle}</directory>
            <finalName>testapp</finalName>
            <resources>
               <resource>
                <directory>src/main/resources/${lifecycle}</directory>
               </resource>
            </resources>
        </build>
    </profile>
</profiles>

正しいビルド ディレクトリは

-Dlifecycle=dev の場合

target/dev/testapp/

-Dlifecycle=prod の場合

target/prod/testapp/しかし、ここで「target/testapp-xx.x」を取得します

なぜこの異なる動作ですか?

ビルドをトリガーするコマンド:mvn clean install -Dlifecycle=prod

4

2 に答える 2

2

prodプロファイルにid要素を追加すると、これが修正されます。

于 2012-08-09T13:37:59.077 に答える
1

実行できることの1つは、作成するプロファイルを指定することです。

各プロファイルのIDを定義します。

 <profiles>
    <profile>
        <id>dev</id>
...
    <profile>

ビルドするときは、引数-Pを使用して、アクティブ化するプロファイルをMavenに通知します

mvn clean install -P dev

于 2012-08-09T13:33:44.637 に答える