我的Pom.xml文件包含以下代码含义是什么?
<profiles>
<profile>
<id>inmemory</id>
<properties>
<env>inmemory</env>
</properties>
</profile>
<profile>
<id>cloudbees</id>
<properties>
<env>cloudbees</env>
</properties>
</profile>
</profiles>
答案 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配置文件。