Как извлечь общую часть в профилях Maven - PullRequest
0 голосов
/ 24 января 2019

В моем pom.xml я определил пару профилей для запуска моего приложения Spring Boot под Oracle WebLogic:

    <profile>
        <id>wls-1</id>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
                <scope>provided</scope>
            </dependency>
        </dependencies>
        <properties>

        </properties>
    </profile>
    <profile>
        <id>wls-2</id>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
                <scope>provided</scope>
            </dependency>
        </dependencies>
        <properties>

        </properties>
    </profile>
    <profile>
        <id>wls-3</id>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
                <scope>provided</scope>
            </dependency>
        </dependencies>
        <properties>

        </properties>
    </profile>
    <profile>
        <id>tomcat1</id>
        <properties>

        </properties>
    </profile>

Как вы можете видеть в каждом новом профиле wls, мне нужно определить зависимости для использования, чтобы обеспечить область (в противном случае развертывание завершится неудачей из-за некоторых ресурсов tomcat). Но все же у меня есть некоторые другие профили, которые не будут использовать эту wls-common часть

Есть ли способ, как я могу определить профиль wls-common, который будет автоматически использоваться из профиля БЕЗ , меняющего мою команду mvn? Я знаю, что могу связать профиль в mvn -P p1,p2 или со свойством -Dp1=wls, но это не то, что я ищу.

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Вы не можете активировать профиль из другого профиля.Вы можете активировать их только с помощью внешних средств, таких как командная строка, файлы маркеров, операционная система.

0 голосов
/ 24 января 2019

Во всех ваших профилях задайте свойства, которые активируют конкретный профиль, и поместите их все в общий профиль.

Однако для этого потребуется, чтобы вы изменили команду с mvn -Pwls-1 на mvn -Dwls-1

<profile>
 <id>wls-1</id>
 <activation>
   <property>
     <name>wls-1</name>
   </property>
 </activation>
 ...
</profile> 
<profile>
    <id>common</id>
    <activation>
      <property>
        <name>wls-1</name>
        <name>wls-2</name>
        <name>wls-3</name>
      </property>
    </activation>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
    </dependencies>
    <properties>
    </properties>
</profile>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...