通过配置文件而非父级管理maven项目版本

时间:2016-06-23 12:41:03

标签: maven

我在pom.xml中有一个父标记,如下所示:

<profiles>
        <profile>
            <id>default-environment-settings</id>
            <properties>
                <app.env>dev</app.env>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
            <profile>
            <id>xyz</id>
            <properties>
                <app.env>profile2</app.env>
            </properties>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
        </profile>
<profiles>

我也有不同的个人资料:

Drupal commerce

现在我希望我的应用程序的版本由配置文件管理,而不是作为全局父级,以便每个配置文件都可以拥有它的私有版本号。

2 个答案:

答案 0 :(得分:2)

你试过这个吗?

    <profiles>
            <profile>
                <id>default-environment-settings</id>
                <properties>
                    <app.env>dev</app.env>
                    <projectVersion>1.0-SNAPSHOT</projectVersion>
                </properties>
                <activation>
                    <activeByDefault>true</activeByDefault>
                </activation>
            </profile>
                <profile>
                <id>xyz</id>
                <properties>
                    <app.env>profile2</app.env>
                    <projectVersion>1.0</projectVersion>
                </properties>
                <activation>
                    <activeByDefault>false</activeByDefault>
                </activation>
            </profile>
    <profiles>

并且不要忘记穿上你的神器

<version>${projectVersion}</version>

答案 1 :(得分:0)

配置文件无意声明POM的版本。如果您使用eclideria's answer中提到的配置文件和您父亲的POM中定义的配置文件:

SELECT INTO custID CustomerID FROM SalesOrderHeader WHERE SalesOrderHeader.SalesOrderID=NEW.SalesOrderID;

它将导致:

  <groupId>com.de</groupId>
  <artifactId>MyApplication</artifactId>
  <version>${projectVersion}</version>