Мультимодульный проект для двух разных войн - PullRequest
0 голосов
/ 11 декабря 2019

Я работаю над многомодульным проектом Spring MVC, в котором один модуль должен вести войну со всеми зависимостями, а другой - войну без исключений. Это возможно? Если да, как я могу этого достичь? Детали проекта приведены ниже:

Структура:

Parent pom:
<modules>
  <web-war-with-all-dependencies>
  <web-ear-without-dependencies>  --> Only to pack the war into an ear.
</modules>

В Websphere создана общая библиотека, в которую добавлены все зависимости. Таким образом, будет развернуто там. будет использоваться для создания образа Docker Tomcat и размещен в среде diff. Мой проект должен поддерживать обе среды. Отсюда и странное требование.

1 Ответ

0 голосов
/ 11 декабря 2019

Использование профилей Maven и добавление некоторых зависимостей только в некоторый профиль или установка их с областью действия: предоставляется:

https://www.baeldung.com/maven-profiles

Пример:

<profiles>
    <profile>
        <id>dev</id>
        <dependencies>
            <dependency>
                <groupId>org.testcontainers</groupId>
                <artifactId>testcontainers</artifactId>
                <version>${testcontainers.version}</version>
            </dependency>
            <dependency>
                <groupId>org.testcontainers</groupId>
                <artifactId>postgresql</artifactId>
                <version>${testcontainers.version}</version>
            </dependency>
        </dependencies>
    </profile>
    <profile>
        <id>prod</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <dependencies>
            <!-- my own library in my private repository which acts like a mock of testcontainers project. Don't ask :-) -->
            <dependency>
                <groupId>cz.jiripinkas</groupId>
                <artifactId>fake-testcontainers</artifactId>
                <version>1.0-SNAPSHOT</version>
            </dependency>
        </dependencies>
    </profile>
</profiles>

Изатем вы строите свой проект, используя:

mvn clean install -P dev

Это поместит внутрь библиотеки WAR testcontainers

или:

mvn clean install -P prod

Это поместит внутрь библиотеки WAR fake-testcontainer

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