如何在Maven配置文件中提取公用部分

时间:2019-01-24 11:51:03

标签: java maven spring-boot

在我的pom.xml中,我定义了一些配置文件以在Oracle WebLogic下运行Spring Boot应用程序:

    <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配置文件,该配置文件将自动从其中使用 WITHOUT 更改我的mvn命令?我知道我可以在mvn -P p1,p2或使用属性-Dp1=wls中链接个人资料,但这不是我想要的。

2 个答案:

答案 0 :(得分:0)

在您的所有配置文件中定义属性,这些属性将激活特定的配置文件并将它们全部放置在公共配置文件中。

但是,这将需要您将命令从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>

答案 1 :(得分:0)

您不能从另一个配置文件激活一个配置文件。您只能通过外部方式(例如,命令行,标记文件,操作系统)来激活它们。