下面的代码中发生了什么,这是我的pom.xml的一小部分?

时间:2014-03-10 19:39:55

标签: maven profiles

我的Pom.xml文件包含以下代码含义是什么?

<profiles>
    <profile>
        <id>inmemory</id>
        <properties>
            <env>inmemory</env>
        </properties>
    </profile>
    <profile>
        <id>cloudbees</id>
        <properties>
            <env>cloudbees</env>
        </properties>
    </profile>
</profiles>

3 个答案:

答案 0 :(得分:3)

它没有特别的意义,它只声明两个build profiles,每个{{3}}设置env属性的值。

意思取决于如何使用这种声明。

例如,如果您的pom.xml中有以下内容:

<packaging>jar</packaging>
...
<plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <archive>
            <manifest>
                <addClasspath>true</addClasspath>
                <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
            </manifest>
            <manifestEntries>
                <built-for-environment>${env}</built-for-environment>
            </manifestEntries>
        </archive>
    </configuration>
</plugin>
...
<profiles>
    <profile>
        <id>inmemory</id>
        <properties>
            <env>inmemory</env>
        </properties>
    </profile>
    <profile>
        <id>cloudbees</id>
        <properties>
            <env>cloudbees</env>
        </properties>
    </profile>
</profiles>

然后你跑:

mvn clean install -Pinmemory

而不是生成的MANIFEST.MF,你可以找到行:

built-for-environment: inmemory

因此,在此示例中,含义是在MANIFEST.MF中添加一个带有built-for-environment:的条目行,后跟个人资料ID的名称。

通过在项目中搜索${env},您可以自己回答,找到项目的含义。

答案 1 :(得分:0)

构建配置文件是一组配置值,可用于设置或覆盖Maven构建的默认值。使用构建配置文件,您可以自定义不同环境的构建,例如Production v / s Development environment?

所以这里它声明了两个配置文件:内存中配置文件和cloudbees配置文件。

答案 2 :(得分:0)

Profilers POM 4.0的一个新功能是项目能够根据构建环境来更改设置。概要文件元素包含可选的激活(概要文件触发器)以及在激活该概要文件后对POM进行的一组更改。例如,为测试环境构建的项目可能指向与最终部署不同的数据库。或者可以根据使用的JDK版本从不同的存储库中提取依赖关系。

所以这里它声明了两个配置文件:内存中配置文件和cloudbees配置文件。