发行说明 – Maven 3.2.2
Maven 3.2.2
Apache Maven 团队宣布发布 Maven 3.2.2。
Maven 3.2.2可供下载。
Maven 是一个软件项目管理和理解工具。基于项目对象模型 (POM) 的概念,Maven 可以从一个中心位置管理项目的构建、报告和文档。
Maven 3 旨在确保与 Maven 2 的向后兼容性,提高可用性,提高性能,允许安全嵌入,并为实现许多高要求的特性铺平道路。
核心版本独立于可用的插件。插件的进一步版本将单独制作。有关更多信息,请参阅插件列表。
我们希望您喜欢使用 Maven!如果您有任何问题,请咨询:
- 网站:http ://maven.apache.org/
- maven 用户邮件列表:http ://maven.apache.org/mailing-lists.html
- 参考文档:http ://maven.apache.org/ref/3.2.2/
完整的变更列表可以在我们的问题管理系统中找到。
强调
支持父元素中的版本范围 ( MNG-2199 )
父元素现在可以在版本规范中使用有界范围。您现在可以对所有项目内依赖项始终使用范围,其中父项是一种特殊情况,但仍被视为从它们继承的项目的依赖项。现在允许执行以下操作:
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
<version>[3.0,4.0)</version>
</parent>
<groupId>org.apache.maven.its.mng2199</groupId>
<artifactId>valid</artifactId>
<version>1</version>
<packaging>pom</packaging>
</project>
请注意,这需要 Maven 3.2.2,因此如果您使用此新功能,建议您在构建中添加 Maven Enforcer 规则以确保使用 Maven 3.2.2+。
要求多个配置文件激活条件为真不起作用 ( MNG-4565 )
多个配置文件激活条件现在是 ANDed 而不是 ORed。我们认为这是正确的行为,因为在此更改之前激活需要多个条件的配置文件是不可能的。如果您确实需要 OR 行为,那么您可以使用单个条件创建多个配置文件。配置文件当然有限制,并且可以通过使用单个自定义激活器来解决,而无需在 POM 中使用条件语法,该激活器采用像MVEL这样的表达式语言。
支持从包含 ${parameter} 的 Repo 解析 Import Scope POM ( MNG-5639 )
此功能有助于支持使用单独的沙盒存储库设置多个开发流的模式,该存储库包含多个共享组件的特定版本。存储库配置可能使用 ${nexus.baseurl}/content/groups/${stream.name} 模式,其中属性在 settings.xml 文件中设置。
更新 maven-plugin-plugin:descriptor 默认绑定从 generate-resources 阶段到 process-classes ( MNG-5346 )
现在,当您使用严格使用注解处理来生成描述符的创建插件时,您可以避免之前需要的混乱配置。这是您通常需要包含的内容,以便在已编译的类上运行描述符生成器并避免错误。
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<version>${mavenPluginPluginVersion}</version>
<configuration>
<skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
</configuration>
<executions>
<execution>
<id>mojo-descriptor</id>
<phase>process-classes</phase>
<goals>
<goal>descriptor</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
当您使用 maven-plugin-plugin 的 3.2+ 版本时,这不再需要并且可以省略。
${maven.build.timestamp} 应该使用 UTC 而不是本地时区(或可配置)(MNG-5452)
这提供了一种创建构建时间戳的标准方法,并允许与使用 UTC 作为时间戳的系统(如 Eclipse Tycho)更好的互操作性。
${maven.build.timestamp} 使用了错误的 ISO 日期时间分隔符 ( MNG-5647 )
默认格式已更改为标准 ISO 8601 ( yyyy-MM-dd'T'HH:mm:ss'Z'
) 以使其可被解析器预测。