Maven профили в модулях - PullRequest
       2

Maven профили в модулях

0 голосов
/ 26 августа 2011

У меня есть проект Maven Java EE с несколькими модулями.

PROJECT
 --EJB
 --WEB1
 --WEB2
 --EAR

Теперь я хочу создать профиль, который компилируется и включает в себя WEB1, и один профиль, который включает оба

Чтобы исключить / включить модуль из сборки, я включаю нужные подмодули в основной файл pom.xml в соответствии с выбранным профилем. Это отлично работает.

Проблема в зависимостях в модуле EAR.

Как исключить либо модуль WEB1, либо WEB2. Переопределение профилей не работает.

Вопрос: есть ли способ управления зависимостями в модуле проекта, согласно выбранному профилю

EDIT:

Моя ошибка, я вместо этого создал теги в качестве непосредственного в корне

Ответы [ 2 ]

4 голосов
/ 26 февраля 2013

Исключение модулей, основанных на профилях, невозможно, но включение работает с использованием специальной функции 'comb.children' начиная с maven 3.0.2, описанной в http://www.sonatype.com/people/2011/01/maven-how-to-merging-plugin-configuration-in-complex-projects/

Таким образом, вы должны определить минимальный контентEAR по умолчанию и с профилями добавьте зависимости / модули следующим образом в ваш ушной модуль:

<project ....>
    ...
    <name>EAR</name>
    ...
    <dependencies>
        <dependency>EJB</dependency> // specify groupId, artifactId, version, type ...
        <dependency>WEB1</dependency>
    </dependencies>
    <profiles>
        <profile>
            <id>build-with-WEB2</id>
            <dependencies>
                <dependency>WEB2</dependency> // specify groupId, artifactId, version, type ...
            </dependencies>
            <build>
                <plugins>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-ear-plugin</artifactId>
                    <version>${maven-ear-plugin.version}</version>
                    <configuration>
                        <modules combine.children="append">
                            <webModule>
                                <groupId>...</groupId>
                                <artifactId>WEB2</artifactId>
                                <bundleFileName>WEB2.war</bundleFileName>
                                ...
                            </webModule>
                        </modules>
                    </configuration>
                </plugins>
            </build>
        </profile>
    </profiles>
    <build>
        ...
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-ear-plugin</artifactId>
                <version>${maven-ear-plugin.version}</version>
                <configuration>
                    ...
                    <modules>
                        <ejbModule>
                            <groupId>...</groupId>
                            <artifactId>EJB</artifactId>
                            <bundleFileName>EJB.jar</bundleFileName>
                            ...
                        </ejbModule>
                        <webModule>
                            <groupId>...</groupId>
                            <artifactId>WEB1</artifactId>
                            <bundleFileName>WEB1.war</bundleFileName>
                            ...
                        </webModule>
                    </modules>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
0 голосов
/ 26 августа 2011

Там в уже заданном вопросе вот так по следующей ссылке.Может быть, это поможет:

Различные зависимости для разных профилей сборки в maven

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...