перенести опцию -f в мультимодуль - PullRequest
2 голосов
/ 15 февраля 2012

в maven есть опция -f, позволяющая указать альтернативный файл pom.xml. Есть ли возможность, что я также могу довести это поведение до исполняемых модулей? Теперь похоже, что когда у меня есть такая структура:

projectA: pom.xml pom.xml2
projectB: pom.xml pom.xml2
И когда я запускаю maven с опцией -f pom.xml2 в качестве реактора с проектом B, указанным в качестве модуля, похоже, что он выбирает pom.xml2 из проекта A и выбирает pom.xml из проекта B. Есть ли способ, как я могу распространить параметр -f на модули?
Спасибо за ответ.

Ответы [ 2 ]

1 голос
/ 13 сентября 2012

Поскольку мы можем указать pom-файл в определении модуля. 1 Вот пример использования альтернативного pom-файла в модуле.

<modules>
    <module>child1/pom-jdk14.xml</module>
    <module>child2/pom-jdk14.xml</module>
</modules>
0 голосов
/ 16 марта 2012

Как комментирует Йорн Хорстманн, я бы попробовал много вещей, чтобы это работало с профилями в одном помпе.

Если это невозможно, единственный способ, с помощью которого я могу придумать эту работу, - это обойти нормальный механизм maven с помощью «переключающего модуля» с профилями. Этот pom помещается как pom.xml в каждый модуль и имеет профиль для каждого из ваших pom.xml2 (или других), и в этом профиле выполняется другая сборка maven f.e. через плагин antrun с ключом -f для нужного вам pom:

<profile>
            <id>xml2</id>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>build pom.xml2</id>
                                <phase>prepare-package</phase> <!-- whatever suits you -->
                                <configuration>
                                    <target>
                                                <echo level="info" message="Building pom.xml2..." />
                                                <exec executable="cmd" dir=".">
                                                    <arg value="/c" />
                                                    <arg value="mvn" />
                                                    <arg value="-f" />
                                                    <arg value="pom.xml2" />
                                                    <arg value="install" /> <!-- enter which phase you need -->
                                                </exec>
                                    </target>
                                </configuration>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...