如何对依赖项使用maven profiling

时间:2014-06-20 07:15:53

标签: java maven dependencies maven-3 maven-profiles

是否有办法在maven概要分析中将配置文件用于依赖类。

我的问题是,我在一个家长下有两个项目。 product-core-ws product-core

product-core-ws 是一个令人遗憾的网络服务。现在我想在产品核心中创建两个配置文件,如下所示

<profiles>
    <profile>
        <id>one</id>

        <dependencies>
            <dependency>
                <groupId>com.fg</groupId>
                <artifactId>product-core-one</artifactId>
                <version>${project.version}</version>
            </dependency>
        </dependencies>

    </profile>
    <profile>
        <id>two</id>

        <dependencies>
            <dependency>
                <groupId>com.fg</groupId>
                <artifactId>product-core-two</artifactId>
                <version>${project.version}</version>
            </dependency>
        </dependencies>

    </profile>
</profiles> 

当我clean install产品核心时,我需要根据给定的配置文件进行依赖

例如,如果我使用

  

mvn clean install -P one

,我需要在war文件中使用product-core-one。

我知道我可以直接在 product-core-ws POM文件中执行此操作。但我不想在那个POM中使用那些。我想通过 product-core 来使用它们。

1 个答案:

答案 0 :(得分:1)

在父POM中,使用配置文件设置Maven属性的值:

<profiles>
    <profile>
        <id>one</id>
        <properties>
          <product.core.version>product-core-one</product.core.version>
        </properties>
    </profile>
    <profile>
        <id>two</id>
        <properties>
          <product.core.version>product-core-two</product.core.version>
        </properties>
    </profile>
</profiles> 

然后在子模块中使用此属性:

<dependency>
    <groupId>com.fg</groupId>
    <artifactId>${product.core.version}</artifactId>
    <version>${project.version}</version>
</dependency>